Jade和ejs,哪一个更胜一筹?
发布于 2年前 作者 tansy 7523 次浏览 最后一次编辑是 4个月前 来自 问答
47 回复

jade更好维护些吧,ejs看着满眼的符号,写多了就跟php一样了

jade是面向后台开发员的模板语言,体验过各种语言各种模板之后,个人认为jade最佳应用场景就是小型开发,就是从后台到前台一脚踢的情况,它能以最少的代码量最快的速度构建出一个像模像样的网页架构,对于大部分不具备美工技能的coder来说,这就足够了。除此之外,放弃jade吧。jade只是个单人play的玩具罢了。

有没有喜欢用 swig 的?从 ejs 转 swig 很容易。jade 是面向对象的,看起来不像HTML了,反倒不好维护了。

html是页面结构,jade正好体现了这一点,以前写html很随意,为了调试方便,经常把css,js函数写到里面,页面复杂以后,很多时间花在调整格式,标签配对了,jade的机制强制让html保留页面结构,表现和运作都分离出去,即使页面复杂,而且程序生成的html没有标签错乱的问题,就象在sass中写嵌套的样式,避免了外层样式输错或者更新引起的问题,每个模板都能清楚地看到这个页面的结构和要呈现的数据形式. 至于1万行的页面模板,平时一般的页面大小在5k-10k之间,这个极端情况很少遇到,平时每页列表的数据不会超过30行,对于现实情况中大部分模板的差异微乎其微,如果要1万行的页面,那可以生成静态页或者输出json数据专到页面js变量,然后在页面中用js来渲染

我现在也喜欢jade了~~

个人更认同ejs,因为一个项目中前段不见得会写jade,但是ejs则大部分都是html,无论是用过php,jsp,cshtml的都能快速上手

作为早期的jade用户,虽然很多人已经转ejs,但是我还是真诚地投jade 一票

学了html为什么还要学jade 我觉得是一种累赘

为什么要把逻辑写到模板中呢

应该是jsp 吧…语法跟jsp 一样…

说学html有点言重了,做开发的,很少听说说学html的,一般都是学c++,学设计模式什么的听得比较多 ,html标签都是所见即所得,就跟word里点按扭是一样的效果,jade只不过把html标签中必不可少的部分提练出来了 比如html 要写

<div id="xxx " > ooo </div> 

jade只需要写

#xxx

就可以 如果jade能称上得累缀的话,你让nodejs异步处理里面的async,step,promise,enentproxy这些情何以堪

我要写一个000那应该怎么样 还是要写html 我们就说了解html吧,

你说胡后面这些库是为了使代码更容易读懂,解决nodejs回调嵌套过深,并且有时代码当中又有比较复杂的逻辑,所以上述这些库很有存在的必要。html中会有很复杂的逻辑吗,会有很深的嵌套吗?

所以我还是认为jade就是鸡肋,没有什么意义

当然ejs哦,jade类似于jsp中的标签,鸡肋一般的感觉,无形中增加了复杂度

绝对推荐jade,这是程序员的语言,虽然不是设计友好的。 ejs还要考虑html标签的关闭,太麻烦。而且页面复杂的话,满眼的%,根本没法维护了。

最近又看上swig模板了~

我也推荐jade 简洁 代码可读性 都比ejs强太多了

@chloe html html 有没有很深的嵌套,取决于你开发什么样的页面 随便打开一个主流网站用firebug看下页面结构,当然你是开发一些玩具网站就不必纠结了 html的逻辑复杂在于css样式的优先级还有不同浏览器的对Css样式解释的差异,jade从一开始在技术层面就培养了一个好的习惯,让结构与表现尽量独立,省了以后页面嵌套而引起各种低级错误,而那种混写的习惯完全取决于个人偏好,当然不也排除有人在ejs里结构,行为,样式完全独立分开写,但大部分人还是写成一团乱麻,到最后了在调页面兼容性的时候越改越乱,纠结在标签不匹配,引号不匹配,样式表与内联样式与js设置的样式冲突这些转义不对等各种低级错误上,而jade从一开始用技术手段就避免了这些问题,让你专注于内容和数据

@yakczh 如果你的页面都嵌套那么深了,还是程序员在写页面吗!!! 并且html与css的这些差异后端根本不用过多关心,你说了那么多,看起来都是程序员把前后端都完成了一样。。。。。

    我打开了taobao看到很多嵌套也没有超过10层,不知道你是开发哪种复杂的网站。。。。

Jade语法过于晦涩难懂,对于希望弯道超车,发财的国人项目不适合

为什么不用ember呢?

JADE。 我之前写EJS烦死了。 JADE功能性比EJS只强不弱。 说JADE慢的。那是大数据模型。 你一个页面渲染一万个变量?如果真是,你还是用EJS吧。在小数据量的情况下。来去不超过5MS。

还没用过jade,就目前来讲,ejs还是蛮好用的

“满眼的%,根本无法维护了”,你让写jsp,php的人情何以堪啊!!!难道现在的jsp,php都是无法维护了? 就我个人而言,根本不喜欢jade,更喜欢ejs,因为ejs有更广泛的支持度。任何写jsp,php的人几乎是0成本就能上手ejs。反观jade,就算是资深的web前端开发,有几个人会去学??看看nodejs为什么会那么火,如果nodejs不是用V8引擎,不是用javascript语法,用一个作者自己造的语法,会这么火吗? 在团队里,我只要拿出ejs文件,给一个应届毕业生,人家立马就可以上手干活了。 如果是一个jade文件呢,你觉得有多少人可以上手?

jade这种语法,我觉得和coffeeScript一样,个人玩玩还可以,商业项目开发,还是算了吧。

不喜欢ejs,理由是 感觉 冗余,难维护。 不喜欢jade,理由是 跟html差别大了。

喜欢coffeescript

ejs的语法不如FreeMarker,ejs更像原生的JSP写法,很不喜欢这种语法;个人觉得swig还可以,语法性能都不错…

@tofrookie 我也是jsp开发后来学nodejs,ejs的语法感觉确实很像jsp,几乎毫不费力就会了,jade却感觉要重新写一遍页面

jade 至于html 感觉就像 coffeescript 至于javascript 如果还没有用jade 还是不要用了

@hpgt EJS 是 HTML 里嵌入一点特殊语法, Jade 是自己设计了语法

@jiyinyiyong 性能姑且不说,jade与ejs开发效率相比如何?

选择jade还是ejs是个人喜好。 但,我更喜好jade。虽然需要一点学习成本,但Jade写的页面很清爽,非常符合MVC的设计思路。

@hpgt 习惯 Jade 的我觉得 ejs 之流的语法让我写界面的速度慢的了 1/3 , 而 Jade 万一遇到冷僻的语法, 可能要纠结好久.

如果人们熟悉用 zencoding 来生成 HTML, 速度也很快. 要看个人习惯. 但我很觉得 Jade 是对的, 结构更清晰, 需要辨认的字符数量也更少.

如果熟悉coffeescript的话,可以看看ect,据说是最快的template engine,功能也很强

@zhyihui1986 性能很一般,推荐试用下ect或者dot

@andyhu 谢谢指点,二者相对来说哪个更好一些?

俩个都不咋用啊,还是喜欢为特定的页面写特定的代码在前端进行组装

只有适合自己的,没有更好的,用了才知道。 我个人原来倾向于ejs,现在自己搞了一个,在JsonML基础上改进的。

https://github.com/coordcn/mark


var temp = [
    'doctype',
    ['html',
        ['head',
            ['meta',
              {charset: 'utf-8'}
            ],
            ['link',
              {href: 'main.css',
                rel: 'stylesheet',
                type: 'text/css'
              }
            ]
        ],
        ['body',
            ['div',
              {class: function(data){
                if(!data && !data.class) return ''; 
                return data.class;} 
              },
              function(data){
                if(!data && !data.table && !data.table.length) return '';
                var table = ['table'];
                var tbody = ['tbody'];
                var tdata = data.table
                var len = tdata.length;
                for(var i = 0; i < len; i++){
                    var d = tdata[i];
                    if(!d && d.length)  continue;
                    var tr = ['tr'];
                    for(var j = 0, l = d.length; j < l; j++){
                        var val = d[j] ? d[j] : '';
                        var td = ['td'];
                        td.push(val);
                        tr.push(td);
                    }
                    tbody.push(tr);
                }
                
                table.push(tbody);
                
                return table;
              }
            ]
        ]
    ]
];


原汁原味的js,代码变多了,但是也更灵活,好坏要看各人取舍了。

开发效率,灵活,简洁,很多时候是矛盾的,这个就在于自己的取舍。不管用什么技术,自己吃透了才是王道。

只有丑陋的代码,没有丑陋的语言。

jade 写的蛋疼,还是开 emmet 写 html 来的快

换 swig 了,很好用

本人不看好JADE这种高大上的东西,理由很简单,假如在一个协作的团队中,前端妹子写好了HTML,如果是EJS,那么后端程序猿直接就套模版了,而JADE呢?!尼玛还要翻译一遍!!!或者你让前端妹子写JADE?!或则你只招会JADE的前端?或则你招后端还得必须会JADE?

@coordcn 你这个适合你自己玩儿,团队协作就死翘翘了……

同楼上,关键是 看你的团队配置,如果有前端妹子配合,ejs就好多了,如果都是让你一个人做。。。自己又前端不给力,那么就jade把

@hainee 支持,目前大部分前端,都不会jade,html 还没玩透呢,团队很重要! ejs还是不错的,维护都一样

有人用nunjucks吗?

个人倾向ejs。感觉通用性更好

jade让我养成了缩进好习惯

我只要一个能在html里面嵌入变量的模板引擎 为什么还要去学语法? 发自 CNodeJs ionic

回到顶部