Nodejs中Jade和ejs,哪一个更胜一筹?
Nodejs中Jade和ejs,哪一个更胜一筹?
Nodejs中Jade和ejs,哪一个更胜一筹?
在Node.js的模板引擎世界中,Jade(现在更名为Pug)和EJS(Embedded JavaScript templates)都是非常流行的选择。两者各有千秋,选择哪个取决于你的具体需求和偏好。本文将从几个方面对比这两个模板引擎,并通过一些实际例子来说明它们的特点。
1. 语法简洁性
Jade (Pug): Jade(现更名为Pug)以其简洁的语法而闻名。例如,以下是一个使用Pug编写的简单HTML模板:
doctype html
html
head
title= title
body
h1 Welcome to #{title}
ul
each item in items
li= item
EJS: EJS的语法更接近于标准的HTML,因此对于那些不习惯Pug的开发人员来说可能更容易上手。以下是相同的例子用EJS编写:
<!DOCTYPE html>
<html>
<head>
<title><%= title %></title>
</head>
<body>
<h1>Welcome to <%= title %></h1>
<ul>
<% items.forEach(function(item) { %>
<li><%= item %></li>
<% }); %>
</ul>
</body>
</html>
2. 性能
Pug通常被认为比EJS更快,因为它采用了一种预编译的方式来生成JavaScript函数,从而减少了运行时的计算量。然而,这种性能差异在大多数情况下可能并不显著。
3. 社区支持与生态系统
EJS拥有更大的社区和更多的第三方库支持。如果你需要一些特定的功能或插件,可能会更容易找到适用于EJS的解决方案。
4. 学习曲线
对于初学者来说,EJS的学习曲线相对较低,因为它的语法更接近于标准的HTML。相比之下,Pug的语法可能需要一些时间来适应。
结论
选择Pug还是EJS主要取决于你的项目需求和个人偏好。如果你重视简洁性和性能,Pug可能是更好的选择。如果你更喜欢易读的HTML语法并且希望有更多的社区支持,那么EJS可能更适合你。
希望这些信息对你有所帮助!
性能? 可读性? 用户量? http://cnodejs.org/topic/50e70edfa7e6c6171a1d70fa
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强太多了
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还可以,语法性能都不错…
jade 至于html 感觉就像 coffeescript 至于javascript 如果还没有用jade 还是不要用了
选择jade还是ejs是个人喜好。 但,我更喜好jade。虽然需要一点学习成本,但Jade写的页面很清爽,非常符合MVC的设计思路。
如果熟悉coffeescript的话,可以看看ect,据说是最快的template engine,功能也很强
俩个都不咋用啊,还是喜欢为特定的页面写特定的代码在前端进行组装
jade 写的蛋疼,还是开 emmet 写 html 来的快
换 swig 了,很好用
本人不看好JADE这种高大上的东西,理由很简单,假如在一个协作的团队中,前端妹子写好了HTML,如果是EJS,那么后端程序猿直接就套模版了,而JADE呢?!尼玛还要翻译一遍!!!或者你让前端妹子写JADE?!或则你只招会JADE的前端?或则你招后端还得必须会JADE?
同楼上,关键是 看你的团队配置,如果有前端妹子配合,ejs就好多了,如果都是让你一个人做。。。自己又前端不给力,那么就jade把
有人用nunjucks吗?
个人倾向ejs。感觉通用性更好
jade让我养成了缩进好习惯
我只要一个能在html里面嵌入变量的模板引擎 为什么还要去学语法? 发自 CNodeJs ionic
Node.js 中 Jade 和 EJS,哪一个更胜一筹?
在 Node.js 社区中,Jade
(现在更名为 Pug
)和 EJS
都是非常流行的模板引擎。两者各有优势,选择哪个取决于你的具体需求和偏好。
Jade/Pug
特点:
- 语法简洁且易读。
- 支持继承、包含等高级特性。
- 更适合开发大型项目。
示例代码:
doctype html
html(lang="en")
head
title= title
body
h1 Welcome to #{title}
ul
each val in ['Item 1', 'Item 2', 'Item 3']
li= val
EJS
特点:
- 语法简单,易于上手。
- 支持直接嵌入 JavaScript 代码。
- 更适合简单的应用场景。
示例代码:
<!DOCTYPE html>
<html lang="en">
<head>
<title><%= title %></title>
</head>
<body>
<h1>Welcome to <%= title %></h1>
<ul>
<% items.forEach(function(item) { %>
<li><%= item %></li>
<% }); %>
</ul>
</body>
</html>
总结
如果你需要一个更简洁且功能强大的模板引擎,并且可能需要一些高级特性(如布局继承),那么 Pug 可能更适合你。然而,如果你希望有一个非常简单的语法并且不需要复杂的逻辑处理,EJS 是一个不错的选择。
最终选择哪个模板引擎取决于你的具体需求和个人喜好。