kotlin 在HTML DSL中使用Ktor中的模板有哪些好处?

0h4hbjxa  于 7个月前  发布在  Kotlin
关注(0)|答案(1)|浏览(59)

我刚刚开始学习Ktor,我真的很喜欢HTML DSL的使用。阅读文档(https://ktor.io/docs/html-dsl.html#templates)我看到了一个模板引擎。然而,要么是我看不到的东西,要么是我没有发现使用它的优点。使用标准的Kotlin扩展函数,比如Div,P,..不是更干净,更容易吗?
我在教程中发布了一个如何使用函数编写示例的示例(模板示例可以找到here):

fun Application.configureRouting() {
    configureArticleRouting()
    routing {
        get("/") {
            val name = "Ktor"
            call.respondHtml(HttpStatusCode.OK) {
                mainLayout(title = name){
                    articleContent(Article("Article Title", "My article content"))
                }
            }
        }
    }
}

fun FlowContent.articleContent(article: Article) {
    article {
        h2 {
            +article.title
        }
        p {
            +article.content
        }
    }
}

fun HTML.mainLayout(title: String, content: FlowContent.() -> Unit) {
    head {
        title {
            +title
        }
    }
    body {
        content()
    }
}

data class Article(val title: String, val content: String)

字符串
问题是,使用模板的好处是什么?
谢谢你,

2w2cym1i

2w2cym1i1#

使用模板的一个优点是,没有深厚编程技能的设计师可以做布局

相关问题