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这些情何以堪
我要写一个<span id=“xxx”>000</span>那应该怎么样 还是要写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 还是不要用了
@jiyinyiyong 性能姑且不说,jade与ejs开发效率相比如何?
选择jade还是ejs是个人喜好。 但,我更喜好jade。虽然需要一点学习成本,但Jade写的页面很清爽,非常符合MVC的设计思路。
如果熟悉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