本人学生狗一枚,最近正在学习用mean做一点东西出来(其实是毕设),然后在jade上碰到了一些疑问, jade是express默认的模板,因为里面都是emmet的语法,不陌生,所以就用了,但是我前端用的是angular,这个东西又是在服务器渲染 所以我angular的路由又不能直接templateUrl指向jade文件,得传服务器渲染完的 但是现在这个推崇前后端分离开发,把前端的东西带到后台,真的有必要么 用html写也可以,而且可能逻辑上比jade更简单,但是存在即真理,我还是很想知道jade的意义在哪里
望大牛们解答下
模版存在的意义就是“复用”。“传服务器渲染完的”这个不是很正常吗?不过如果想要用“单纯的前端模版”,可以考虑其他方案:doT/ejs/underscore/handlebar之类的。在前端也可以直接用预编译好的函数,而不是模版文件本身。leungwensen/template2module
@leungwensen 没怎么太懂,我原来在创业公司实习的那一阵,就是可能对mvc的观念毒化比较深,然后就认为前端就应该干前端的活,后台就应该做后台的事情了,那jade这个东西不是就是把前端的东西带到后台,强行在前端跟后台之间加关联了么,类似jsp那样(我是这么理解的,不知道有没有错)
@THCloud angular的router是用来做单页应用的。如果你要做单页应用,请将templateUrl指向静态的html页面,不要指向jade。 如果你做的不是单页应用,那就不需要用angular的router了。
@huangshaohui 是打算做成单页,gulp的js压缩跟css压缩什么都写好了 现在是angular的route的templateurl指向express router对应的url,然后express的router里res。render过去相应的jade 就是服务器渲染的了
jade 就是一个单纯的模板的意义吧。楼上说的模板模块化的事情,任何模板都提供类似的复用功能啊。
https://github.com/expressjs/express/wiki?_ga=1.148200951.1354791833.1450773617#template-engines
这里有一大堆的模板引擎可以选择。
在我看来,jade 就是跟 coffeescript 一样,能不废话就不废话,但跟 coffeescript 存在一样的问题:用空格来表示块。
不同的模板引擎,大致有两点不同:
- html 的语法不同
- 字符串插值的方式不同
我个人是喜欢用 ejs 的。