nodejs官方为什么推荐jade

JavaScript012

nodejs官方为什么推荐jade,第1张

Jade有两点是超出传统模板技术的。

第一、简洁。

注意,简洁并非单指更少的符号,而是看是否能match你的需要。Jade强制的缩进格式能凸显html的结构,而对于前端来说,最重要的任务恰恰是处理结构,而不像一般的html author那样是处理内容。反过来说,假如你的主要任务是处理内容,比如写作blog之类的,那你应该用wiki或者markdown之类的,而不应该用Jade。

第二、html-aware

传统模板技术其实是通用模板,即模板引擎并不care你输出的是html还是其他格式的文本。而Jade专为HTML设计,因此可以做许多传统模板做不到的专门针对html的优化。举个几个简单的例子:

1. 决定如何输出属性(当属性赋值为null/false时不输出属性,为true时只需属性不需要值,这在传统模板里写起来很麻烦、代码难看易出错)

2. 自动产生well-formed结构(甚至可决定是否要输出结束标签,而传统模板理论上也做不到这点,除非引入额外的html parse或tidy)

3. 换行处理,避免产生额外的空白节点

4. 对输出的变量自动进行特殊字符的encode

当然,这些ejs或传统模板也有能实现的,但是用起来感觉都很挫。

实际上,Jade在这方面其实做得还不够好(我打算顺着这个思路做个开源的项目),但是比那些传统模板还是要优雅多了。

Jade是一款基于haml的html模版引擎,采用Java cript实现,可以方便地 在Node.js、Yeoman等框架中使用,已改名为pug

1.安装jade : sudo install gade -g

2.编译html  :   jade -P -w test.jade    (test是自己写的文件名输入这个指令后 会自动生成一个对应的html文件)

3.安装hede指令:  sudo  snpm hade -g     (安装完成后 直接在终端输入hade 就可以跳到一个网页 将HTML源码和编译后的都显示出来)

jade 语法:

    1.jade语法:通过缩进关系,代替以往html的层级包含关系,如 个简单的静态  可以表达为,注意要统一使用tab或者空格缩进,只需要写一个标签名就行

    2.内联书写层级,a: img

    3.style属性:div(style={width:”200px”,color:”red”})

    4.使用”-”来定义变量,使用“=”把变量输出到元素内;

    5.通过 #{variable} 插 相应的变 值

    7.文本: 通过在 字前 添加竖线符号“|”可让 jade 原样输出内容 在html标签标记后 通过空格隔开 本内容 在html标签标记后通过添加英  号“.”添加块级 本

    8.注释:可以通过双斜杠进 注释,jade有3种注释 式,可以分别对应输出html 注释、 输出html注释、块级html注释

    9.循环:each val in [1,2,3]

    10.判断语句:”if  else”  case  when default 

    11.mixin:混合模式