Mustache 比传统的模板语言好在哪些地方?

对比

模板语言之间其实大同小异,尤其是JS模板,不管是 Mustache 还是 jQuery Template 还是 Dust.js,它们之间核心逻辑的近似程度堪比被吐槽为“两个完全一样的东西”的 sass 和 less 。而这几个时兴的JS模板相比比较老的 Smarty 等模板语言,我认为有下面几点优势:

简单易学

Mustache 对于初学模板语言的人来说上手非常快,同时功能上不弱于传统的模板语言。
为了说明这一点,不如比较一下:
Mustache 的指南:http://mustache.github.com/mustache.5.html
Smarty长长的文档列表:http://www.smarty.net/docs/en/
Smarty 的文档页面里只列了链接,就比 Mustache 连说明带例子的指南要长的多了……

离结构化的数据更近

拿官方的例子来看:
Smarty 要单独对变量做赋值,类似程序输出:
{assign "name" "Bob"} //赋值
{assign "age" "18"} //赋值
His name is {$name}. He is {$age}. //模板
结果:
His name is Bob. He is 18.
Mustache是直接传入json格式的数据 数据
{
"name": "Chris",
"value": 10000
}
模板
Hello {{name}}
You have just won ${{value}}!
结果
Hello Chris
You have just won $10000!

总结

上帝的归上帝,凯撒的归凯撒 Mustache 的 slogan 是 Logic-less templates. 我觉得这是一个很好的概括,模板语言就应该只负责结构的输出,逻辑上的东西应当交给别的地方来做。这也是新的模板语言对旧有模板中的不足的认识和总结吧。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 谈起服务端渲染,对于动态服务而言,这个世界上跑的大多数页面都经历过服务端的数据渲染,接口->前端赋值->模板渲染 ...
    Jill1231阅读 3,602评论 0 0
  • 这篇笔记主要包含 Vue 2 不同于 Vue 1 或者特有的内容,还有我对于 Vue 1.0 印象不深的内容。关于...
    云之外阅读 10,452评论 0 29
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,293评论 19 139
  • 2016-01-15 15:33:133 佳: 我一直觉得你是世界上最好看的大宝贝,你最漂亮的样子是温柔,很多时候...
    blair_c阅读 1,573评论 0 0
  • 我是KiShua阅读 2,707评论 3 2