大家觉得Jade好用吗?为什么我觉得很反人类?
发布于 5个月前 作者 pockry 1239 次浏览 来自 问答

话说我学NodeJS不是从express学起,之前用的模板引擎是handlebars.js,跟wordpress、dedecms之类的模板非常相似,几乎没有学习成本(不过里面的helper还是有点难用),如今做一个个人项目,用的Jade,感觉这货就是个生成器,从一种它自定义的语言生成html,学习曲线比较陡峭,刚开始写Jade都是先写HTML,然后用html2jade转一下,即使后面熟悉了,脑袋里也还是有个人肉转换的过程,先要脑袋将html转换成jade,再让jade 去生成html,感觉很蛋疼。。

而且Jade前端没有数据绑定,如果传给Jade不同的值,它会重新生成页面,也就是说页面会刷新,这样我想做个无刷新或者伪无刷新的网页还得写ajax?这也太落伍了吧。。

不知道大家怎么看。。

22 回复

express不是必须用jade, 模板引擎可以随便换.

你指的数据绑定是什么? 局部刷新如ajax或者其他前后端通讯技术(websocket/SSE/flash socket/…), 伪刷新如turbolinks或者pjax, 这些和模板都没任何关系, 如果你指的是angularjs那种绑定, jade和angularjs并不冲突, 但是用angularjs同样离不开前后端通讯.

@whatsmynick 是的,但是Jade是express的默认模板引擎啊,很多人一上来学node学express都是用Jade,搞的有些其他相关联项目也用Jade,比如hackathon starter,我现在就用这个,要不然我也不会在这吐槽了。

我之前用的handlebars还有angularjs都有数据绑定,我还以为是模板引擎标配呢,已经有了Jade还得自己写或是去用其他的库,不幸福啊。。 ╭(╯^╰)╮

HTML 才反人类, 适合人类阅读的语言, 不管怎么比, 总要定几个规则, 我理解适合人类的规则, 主要包括:

  • 结果清晰, 容易看懂
  • 编辑方便, 即便没有强大的 IDE 也方便维护
  • 代码本身不要随便重复
  • 没有太多隐藏的状态, 特别不要有容易让人误解的

HTML 相对于 Jade 反而是一种低级语言, 虽然上手快, 但是隐藏状态多, 控制起来也不方便. Jade 需要说明, 其功能远远超出了模板引擎, 用 Handlebars 之类对比是不靠谱的.

另外在前端单页面的使用问题上, Jade 确实不适合前端使用, 前端模版常用的方案是编译到 JavaScript, 而 Jade 编译的 js 文件性能很差, 所以很少在前端用 如果真要用, Blade 稍微好一点, 而且 Blade 有 Meteor 的绑定, 绝对双向绑定的开发效率 你也可以试试我模仿 doT 写的 Cirru HTML js, 当然要说明这是我写的所以我推荐, 不代表功能全面

另外双向绑定明明是前端 MV* 内容, 不要跟服务端渲染混在一起讲

个人很不习惯,不过好用不好用也看不同人习惯了。其实html+emmet就挺好了,写程序不可能不熟悉html,为了一个模板单独搞另外一套类似于coffeescript>javascript的东西,觉得真没必要

我觉得挺好的呀,以前都用 emmet 来写HTML,当时感觉总算是不用敲尖括号了,现在用 jade 就连 Tab 都不用按了,还少些好多引号。

@jiyinyiyong HTML隐藏状态多?而且比Jade还多,这个从何说起?

@yeaha 确实不能说 Jade 少. Jade 的隐藏状态不在标记语言上边, 而是在逻辑上, HTML 没有逻辑上的功能, 所以这部分是没法对比的.

我想说标记语言上边, Jade 里可以自动对实体符号进行转义, 而 HTML 里显然需要自己对付. 另外还有空格的处理上, Jade 也做了一定的处理, 格式化代码同时避免了多余的空格. 只能说 Jade 相对好一点吧

@andyhu 不错,我觉得要想简化写HTML的劳动,emmet真的足够了。

coffeescript是javascript的子集,避免了js的一些坏的部分,还是很有意义的。

个人觉得HTML挺好的,掌握好HTML,对于调试也很好啊!

@pockry 可是写html的不是程序员,会的不写。

jade写起来挺舒服的

@pockry handlebars 有数据绑定???ember 是 ember,handlebar 是 handlebar 噢。

@alsotang 额,是没有,不过很容易实现倒是,我之前用的不是emberjs。。

web全都反人类,鉴定完毕

@tolerious 楼上一棍子横扫,世界登时清净了。。。

每次都都会在生成express后加上一句 express --ejs

jade写结构实在是,方便快接,我以前都是用emmet写HTML,自从发现jade之后,就很少了

由于我是.Net程序,所以比较倾向ejs模板

只用过handlebar和ejs的路过

Jade挺好的啊。你想用其他功能就用其他js配合,不过作为模板,我真的挺喜欢Jade的,至少之前用ejs,我就觉得ejs模板不如直接写html算了。

回到顶部