V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
uoryon
V2EX  ›  Node.js

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

  •  
  •   uoryon · 2012-09-11 18:46:32 +08:00 · 11633 次点击
    这是一个创建于 4238 天前的主题,其中的信息可能已经有所发展或是发生改变。
    求推荐,有没有很好用的。。
    26 条回复    1970-01-01 08:00:00 +08:00
    darklowly
        1
    darklowly  
       2012-09-11 18:48:42 +08:00
    ejs
    paulguo
        2
    paulguo  
       2012-09-11 18:55:38 +08:00
    Juicer,性能优越(比handlebars、ejs快许多)、安全、易用、完善的错误处理。http://juicer.name
    uoryon
        3
    uoryon  
    OP
       2012-09-11 18:58:43 +08:00
    @darklowly
    @paulguo
    种类繁多的样子,我都看看。。
    主要还是看可读性。。。
    darklowly
        4
    darklowly  
       2012-09-11 19:04:33 +08:00
    @paulguo
    @uoryon

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

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

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

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

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

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

    jade不利于协作。除非你自己是一条龙拿下整个项目。
    heroicYang
        18
    heroicYang  
       2012-09-14 13:03:28 +08:00
    jade非常直观啊~
    meteor
        19
    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
        20
    nicolazj  
       2012-09-16 23:41:11 +08:00
    用过hogan,实际使用中,碰到一些需要特殊处理的,轻逻辑的模版好像确实比较难处理。大家是怎么搞得呢?
    franky_xhl
        21
    franky_xhl  
       2012-09-18 09:50:19 +08:00
    @nicolazj 我是先用javascript把数据处理一下再给模板
    jackyz
        22
    jackyz  
       2012-09-20 11:06:14 +08:00
    我不太喜欢 require 一大堆东西。目前感觉 underscore 的 template 很 tiny & easy 。
    jiyinyiyong
        23
    jiyinyiyong  
       2012-09-21 18:42:06 +08:00
    alsotang
        24
    alsotang  
       2012-09-23 01:49:57 +08:00
    @paulguo
    @darklowly
    @NemoAlex
    我支持”添足“二字,画没画蛇就不懂了。

    and 楼主,Jade配上CoffeeScript写网站,感觉挺好。
    chone
        25
    chone  
       2012-09-23 08:32:27 +08:00
    paulguo
        26
    paulguo  
       2012-09-23 12:39:04 +08:00   ❤️ 1
    @alsotang 非常感谢你的反馈,不过抛出自己的观点最好能给出何处添足,如此回复无论对一个开源项目还是发帖者都无裨益。juicer在应用中是有自己的观点和立场的,也不是为所有应用场景而生。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2730 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 14:49 · PVG 22:49 · LAX 07:49 · JFK 10:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.