用nodejs就要使用jade模版么?有没有别的可替代的?

2012-09-11 18:46:32 +08:00
 uoryon
求推荐,有没有很好用的。。
11777 次点击
所在节点    Node.js
26 条回复
darklowly
2012-09-11 18:48:42 +08:00
ejs
paulguo
2012-09-11 18:55:38 +08:00
Juicer,性能优越(比handlebars、ejs快许多)、安全、易用、完善的错误处理。http://juicer.name
uoryon
2012-09-11 18:58:43 +08:00
@darklowly
@paulguo
种类繁多的样子,我都看看。。
主要还是看可读性。。。
darklowly
2012-09-11 19:04:33 +08:00
@paulguo
@uoryon

jade不够直观
juicer画蛇添足, 别问我细节。我看过以后忘记了
paulguo
2012-09-11 19:40:56 +08:00
@darklowly juicer是我写的,写之前我做过充分的调研,目前Beijing Taobao UED已经开始更换旧的模板引擎为juicer了,项目中的实践经验得知,性能在复杂逻辑和大数据量下很重要的(如果性能有瓶颈,会遇到浏览器短暂卡死脚本超时的情况),juicer完全可以胜任,juicer的自定义语法不是画蛇添足完全是为了模板的易维护易读。
paulguo
2012-09-11 19:41:38 +08:00
@darklowly 如果你觉得有不完善的地方可以给我提出来方便我改进,感谢。
yetone
2012-09-11 20:07:07 +08:00
@paulguo 很强大,谢谢贡献!
uoryon
2012-09-11 20:12:14 +08:00
@paulguo 感谢贡献。。
darklowly
2012-09-12 02:43:41 +08:00
@paulguo

1 juicer部分功能好像没有(只是好像)因为我忘记了。例如include之类的 在把这些功能加上去以后性能会不会继续快。我不确定

2 juicer没有必要引入其他语法。我写程序的原则是。在尽量不引入任何概念的情况下。就坚决不引入哪怕一丁点。虽然你那个语法可以瞬间学会。但是没必要。例如${var_name} $${var_name}.

3 node.js的优点,我不觉得是速度有多快。或者是异步特性。反而异步特性在拖后腿。虽然很多人不承认这一点。但是它火了。我猜测很大原因是前后台可以统一了。可以用一种语言写完所有的东西了。既然是这样,为什么还要引入其他的东西呢?

4 纯属个人偏好。不代表别人。
paulguo
2012-09-12 11:41:05 +08:00
@darklowly thx,

1\ include加进去不会引起性能下降,性能问题是由编译后的模板函数决定的,include的处理是在编译中而不是生成的compiled_func中,后续我会考虑加上子模板的功能。

2\ 这点也是juicer一直坚持的,调研中也发现像micro-tmpl这样的原生语法花括号看起来眼花缭乱,极易出错,当然如果喜欢的话juicer也是兼容micro-tmpl的<% %>原生语法的。

3\juicer并不是为nodejs而生,是为浏览器而生的,因此对性能还是比较关注的,如果需求仅仅是在服务端渲染模板,不同引擎的性能差别应该还可以忍受。

感谢darklowly的反馈 :)
NemoAlex
2012-09-12 11:48:53 +08:00
Jade 是最佳方案
@darklowly
@paulguo
看了一下淘宝的这个项目,用“画蛇添足”来形容是再恰当不过了
bitsmix
2012-09-12 14:16:56 +08:00
讨厌带逻辑的模板。。所以推荐 {{mustache}}
ine181x
2012-09-13 19:45:15 +08:00
http://paularmstrong.github.com/swig/ 个人比较倾向于swig 如果是从python或java的freemarker转过来的可以选择这个
bigwang
2012-09-13 19:47:02 +08:00
nodejs写页面,还不如花点时间去学php
sofish
2012-09-13 19:56:43 +08:00
怎么说呢?并不是只能用 jade 而没有替代品,但在 node 中不用 jade 可以说是太可惜了。特别是当 express + jade 的时候,从代码的分层和编写的效率上,还没见到更好的配合
uoryon
2012-09-13 20:56:03 +08:00
@sofish
@NemoAlex 好的,我就学以下jade。。

@bigwang php已经会了。。我只是想前后端语言统一,也就是玩一玩。。
dn
2012-09-14 11:49:55 +08:00
ejs

jade不利于协作。除非你自己是一条龙拿下整个项目。
heroicYang
2012-09-14 13:03:28 +08:00
jade非常直观啊~
meteor
2012-09-16 23:04:32 +08:00
谁说一定要Jade的?
Jade只是Template Engines之一.
https://github.com/visionmedia/jade

有很多的替代方案的。

Template Engines

Template engines that are Express compliant out of the box.

Jade -- Haml inspired template engine
Haml.js -- Haml implementation
EJS -- Embedded JavaScript template engine
hbs -- adapter for Handlebars.js, an extension of Mustache.js template engine
hulk-hogan -- adapter for Twitter's Hogan.js (Mustache syntax), with support for Partials
combyne.js -- A template engine that hopefully works the way you'd expect.
swig -- fast, Django-like template engine
whiskers -- small, fast, mustachioed
Blade -- HTML Template Compiler, inspired by Jade & Haml
Haml-Coffee -- Haml templates where you can write inline CoffeeScript.

Webfiller -- plain-html5 dual-side rendering, self-configuring routes, organized source tree, 100% js.

https://github.com/visionmedia/express/wiki
nicolazj
2012-09-16 23:41:11 +08:00
用过hogan,实际使用中,碰到一些需要特殊处理的,轻逻辑的模版好像确实比较难处理。大家是怎么搞得呢?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/47466

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX