详解Node.js模板引擎Jade入门
Jade是Node.js的一个模板引擎,它借鉴了Haml的很多地方,所以语法上和Haml比较相近。并且,Jade也支持空格。
文成ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:028-86922220(备注:SSL证书合作)期待与您的合作!
1、标签
在Jade里,一行开头的任何文本都被默认解释成HTML标签。并且你只需要你写开始标签——注意:不需要加“<>”。因为Jade会帮我们渲染闭合和开始标签。例如:
body div h2 Jade是Node.js的一个模板引擎 p 它借鉴了Haml的很多地方,所以语法上和Haml比较相近。 div footer © Pandora
上面的Jade模板最终渲染出的HTML代码是:
Jade是Node.js的一个模板引擎
它借鉴了Haml的很多地方,所以语法上和Haml比较相近。
注意:如果没有写标签名,则默认就是div标签。
2、变量/数据
传给Jade模板的数据我们称之为locals。 使用等号“=”来输出一个变量的值。
(locals):
{ title: "Express.js Guide", body: "The Comprehensive Book on Express.js" }
Jade code :
h2= title p= body
渲染输出的HTML :
Express.js Guide
The Comprehensive Book on Express.js
3、读取变量
Jade中读取变量的值是通过#{name}来实现的。例如:
- var title = "Node" p I love #{title}
在模板被编译时变量的值就会被处理,所以,不要在可执行JavaScript(-)里使用它。
4、属性
属性紧跟在标签之后,且用“()”括起来,多属性用“,”分隔。例如:body (name1 = “value1”, name2 = “value2”)。
div(id="content", class='main') a(href='http://csdn.net', title='csdn主页', target='_blank') CSDN:中国软件联盟 form(action="/login") button(type="submit", value="提交")
输出:
动态属性:
动态属性即属性的值是动态的,即用一个变量来表示属性的值。符号“|”可以在新的一行里写HTML节点内容。例如:
a(href=url, data-active=isActive) label input(type="checkbox", checked=isChecked) | yes / no
提供给上面模板的数据:
{ url: "/logout", isActive: true, isChecked: false }
最终渲染后输出的HTML:
注意:属性值为false的属性在输出HTML代码时将被忽略;而没有传入属性值时,将默认为true.
5、字面量
为了省事,可以直接在标签名之后写类名和ID名。例如:
div#content p.lead.center | Pandora_galen #side-bar.pull-right // 没有标签名,默认为“div” span.contact.span4 a(href="/contact" rel="external nofollow" rel="external nofollow" ) contact me
渲染输出的HTML:
Pandora_galen
contact me
6、文本
使用“|”符号输出原始文本。
div | 我两年前开始学习前端 | 在此之间,我学过了html, jQuery, JavaScript, Python, Css3, HTML5, Bootstrap, D3.js, SVG...而现在我在学Node。并且我已经深深的爱上了前端。
7、Script 和 Style块
使用“.”符号在HTML里创建
script. console.log("Hello world!"); setTiemout(function() { window.location.href = "http://csdn.net" }, 1000); console.log("Good bye!");
生成的代码:
同理,style.生成的是。
8、JavaScript代码
使用-,=或!=这三个符号在Jade中写可以操纵输出的可执行JS代码。这在要输出HTML元素和注入JavaScript时是很有用的。不过,这么做一定要小心避免跨站脚本(XSS)的攻击。
比如,可以使用!=定义一个array, 输出标签数据:
- var arr = ['', '', ''] ul -for (var i = 0; i < arr.length; i++) li span= i span!= "unescaped:" + arr[i] + "vs." span= "escaped:" + arr[i]
<1>. 输出到页面的——“//”
<2>. 不输出到页面的—— “//-”
给if语句加个前缀-,这样就可以写标准的JavaScript代码了; 也可以不用前缀、不用括号,当然后者更简洁。
注意: 要想使用Markdown过滤器,需要安装Markdown模块,以及Marked和Markdown NPM包。
如果你使用过sass又或者compass的mixin你肯定不会陌生,而Jade 里mixin的使用方法和它们基本相同。
声明的语法: mixin name(param, param2, …….)
express |
Jade |
Handlebars |
backbone |
angular |
emberJS |
包含一个Jade模板,用include /path/filename.
注意:不能再文件名和文件路径中使用变量,因为includes/partials是在编译时处理的,而不是在执行时。
对于使用Sass、Compass又或者Less的人这些事再熟悉不过的了。
extend与include“唱对台戏”,正好相反,extend是一种自底向上的方法。它所包含的文件决定它要替换主文件中哪那一部分。
使用格式: extend filename 和 block blockname;
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持创新互联。
网站标题:详解Node.js模板引擎Jade入门
标题URL:http://scjiangan.com/article/gjsscd.html