模板引擎的决择 资深大神能给些意见吗?
发布于 8 年前 作者 yuanzhhh 9526 次浏览 来自 问答

最近选模板很纠结这两款模板 ( artTemplate) vs ( nunjucks) ,亲们能给点意见吗!

23 回复

当然是用jade啦,node框架Express默认的模版引擎

@Wang-Kai 额,我个人认为,jade虽好,但语法的话比较另类,对于个人全栈开发的话,还比较不错,但团队项目的话,感觉就很鸡肋了:P

Jade非常整齐,但是但心有效率问题。用ejs感觉low。在我的强势安利下,我们团队接受了TypeScript、React,但是就是不接受Jade。

@bgdsh 嗯嗯,如果项目大了,效率是个问题。额,我提的这两个,亲,有接触过吗…

@yuanzhhh 没接触过,但是我觉得就从难易程度和效率两个角度考虑吧。但是说真的,为什么不考虑前后端分离的技术呢?比如Angular、React.js、Backbone等等。

@bgdsh 嗯嗯,我考虑下,谢谢啊。

@yuanzhhh

我看 artTemplate 里面没有 lexer/parser 实现,这种就不要去使用了把,出错没法找错啊~

前端用的artTemplate,后端一直用jade,习惯就好。jade的效率问题没考虑过

比较喜欢用artTemplate,nunjucks没有用过,不了解

<script type="text/javascript" src="http://localhost/nunjucks.js"></script>

ie下报错 消息: 缺少标识符、字符串或数字 行: 6095 字符: 6 代码: 0 URI: http://localhost/nunjucks.js

@yakczh ie也要看是 ie 几

gte 9, 是有ES5 的,应该没问题 8 的话,需要 es5-shim https://github.com/mozilla/nunjucks#browser-support 再往下, 不太清楚。。。

@magicdawn shim 和sham是一起用吗?

<script type="text/javascript" src="//cdn.bootcss.com/es5-shim/4.5.7/es5-shim.js"></script>
<script type="text/javascript" src="//cdn.bootcss.com/es5-shim/4.5.7/es5-sham.js"></script>
<script type="text/javascript" src="http://localhost:8000/nunjucks.js"></script>

<script>
alert(nunjucks.renderString('Hello {{ username }}', { username: 'James' }));
</script>

还是报错,是不是引用的顺序不对?

handlebars 自豪地采用 CNodeJS ionic

就个人看法,简单对比总结下,如何选择还是看你实际情况了:

  • Jade
    优点:代码简约,无需考虑前后的标签匹配,是Express默认模板引擎,支持layout布局等技术
    缺点:已经是一门新的标记语言了,需要专门学习,学习成本较大,很容易遇到问题然后各种谷歌求解…一般都是先写用原生的HTML代码,再通过htmltojade转为Jade,这些问题如果再考虑到团队合作开发,美工、前端、后端都要在页面中放东西,可能就会觉得很麻烦了。
  • ejs
    大量的<%= %>,我是作ASP.NET出身,已经深恶痛绝了!!ejs的尖括号,很容易就跟html的尖括号混起来,看上去乱糟糟的。。。
  • handlebars
    优点:原生的html,团队合作开发容易,学习成本很低,大家都能很快上手,用 {{ code }} 标记服务端代码
    缺点:正在学习中,没发现啥大问题,感觉很顺手的样子。。。打算从Jade转handlebars,因为每次都要html转jade实在受够了。。
    ps:创建express项目时,可以很容易地选择handlebars模板引擎:
    express --hbs myProjectName 个人感受,仅供参考!

@yakczh 是的啊~你是IE几

这里我提供两个供选的模板引擎, mustache.js 和 hogan.js。一般在页面模板中,建议尽量少写业务逻辑,用ejs虽然灵活,但是团队大了,不好控制。Jade的代码简约,但是不太好和设计师协作,除非你的设计师也会jade,否则把设计好的静态页面转成jade也是一个成本很高的过程。

@magicdawn
网页错误详细信息

用户代理: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; MALN; .NET4.0E; .NET4.0C; Media Center PC 6.0) 时间戳: Sat, 26 Mar 2016 02:32:58 UTC

消息: 缺少标识符、字符串或数字 行: 6095 字符: 6 代码: 0 URI: http://localhost:8080/nunjucks.js

<div data-reactid=".0.1.0.5.2.0.0"><p data-reactid=".0.1.0.5.2.0.0.$0"><span data-reactid=".0.1.0.5.2.0.0.$0.0">artTemplate用过,灵活性比较好,还支持预编译压缩,其实都用上前端模板了,为何不选择vuejs或者reactjs,个人不推荐angular,如果是很简单的页面片段,无所谓模板引擎选择了,哪个简单用哪个</span></p></div>

ejs swig jade 都用过, 还是觉得要简洁高效就选ejs ,要界面美观逻辑清晰就选 swig这种类 handlebars 的模板引擎, jade实在是不推荐

art-template,语法简单,而且性能甩别的前端模版引擎好多个数量级,去github上搜搜看就知道了

jade 虽然简洁,但是学习成本比较大,ejs简单,hbs挺不错的,当然jade也是有自己的优点,如果时间充裕的话,jade也挺好的,多学点东西总是好的

回到顶部