让我们来聊聊 jade 模板引擎

jade 模板引擎

jade 是高性能的node JavaScript模板引擎,它主要针对node的服务端

它是侵入式的模板引擎,和普通的 HTMLCSS 是无法共存的,强依赖的模板引擎

既然学习了 node,那怎么可以不知道 jade 的用法呢??

让我们来一起学习以下他的基本语法吧!!!

jade

安装:cnpm install jade

使用:引入 const jade = require('jade');

规则:根据缩进来规定层级,属性放在圆括号 ( ) 里面,并使用逗号分隔

jade 的语法规则

  1. 属性的写法:

    link(src="a.js", rel="stylesheet")
    // <script src="a.js" rel="stylesheet"></script>
  2. 内容的写法:(空一个空格)(注意:tab和空格不能同时使用,所以这行的引进用空格代替)

    a(href="http://www.baidu.com") 官网
    // <a href="http://www.baidu.com">官网</a>
  3. style 属性的写法:

    常规写法:

    div(style="width:200px;height:100px;")
    // <div style="width: 200px; height: 100px;">

    JSON 形式写法:

    span(style= {width: '200px', height: '100px'})
    // <span style="width:200px;height:100px"></span>
  4. class 属性的写法

    常规写法:

    div(class="aa bb cc")
    // <div class="aa bb cc"></div>

    Array 数组形式写法:

    div(class=['aa', 'bb', 'cc'])
    // <div class="aa bb cc"></div>
  5. class 和 id 的简写

    div.box  // <div class="box"></div>
    div#div1  // <div id="div1"></div>
  6. 使用 &attributes 进行 JSON 形式的属性书写

    div&attributes({title: 'aaa', id: 'div2'})
    // <div title="aaa" id="div2"></div>
  7. 使用 '|' 进行内容的书写,表示 “原样输出”

    body
    |abc
    |ddd

    输出:

    <body>
    abc
    ddd
    </body>

    或者如此输入:

    script
        |window.onload=function () {
        |   var oBtn = document.getElementById('btn1');
        |};

    结果为:

    <script>
      window.onload=function () {
        var oBtn = document.getElementById('btn1');
      };
    </script>
  8. 使用 '.' 来进行内容的书写,代表他的所有下级原样输出为内容

    script.
        window.onload = function () {
            var oBtn = document.getElementById('btn1');
        };

    结果为:

    <script>
      window.onload = function () {
          var oBtn = document.getElementById('btn1');
      };
    </script>
  9. 使用 include 引入内容,而且不增加 http 请求数

    // 将 a.js 的内容进行引入
    script
        include a.js
  10. 引入变量

    div 我的名字:#{name}
    // <div>我的名字:Han</div>
    div #{a + b}
    // <div>23</div> // 支持运算

    当然前提是还要给这个变量赋值

    // 给变量 name 赋值
    var str = jade.renderFile('./views/4.jade', { pretty: true, name: 'Han', a: 11, b: 12 });
  11. 变量在 class 和 style 中的应用

    var str = jade.renderFile('./4.jade', { pretty: true, json: { width: '100px', height: '100px', background: 'red' }, arr: ['aaa', 'bbb', 'ccc'] });
    div(style=json)
    div(class=arr, class="ddd")
    // <div style="width:100px;height:100px;background:red"></div>
    // <div class="aaa bbb ccc ddd"></div>

    而且自己加上的 class 会自动添加进去,彼此不冲突

  12. 在 jade 文件中直接定义变量

    - var num1 = 12;
    - var num2 = 13;
    div #{num1 + num2} 
    // <div>25</div>
  13. 变量填充内容的简写形式

    - var a = 11;
    - var b = 22;
    div #{a}
    div #{b}
    // 可以简写成
    div=a
    div=b
    // 结果一样:<div>11</div> <div>22</div>
  14. 在 jade 中使用 for 循环建立多个标签

    - var arr = ['aaa', 'bbb', 'ccc'];
    - for (var i = 0; i < arr.length; i++)
    div=arr[i]
    // 输出为:<div>aaa</div> <div>bbb</div> <div>ccc</div>
  15. 在 jade 中注入标签,使用 !=

    - var html = '<h3>标题</h3><p>内容</p>';
    div!=html
    // div><h2>标题</h2><p>内容</p></div>
  16. 在 jade 中使用 if 语句

    - var number = 13;
    - if (number%2 == 0)
    div(style={background: 'red'}) 偶数
    - else
    div(style={background: 'green'}) 基数
    // 最终输出为: <div style="background:green">基数</div>
  17. 在 jade 中使用 switch 语句

    -var number2 = 1;
    case number2
    when 0
        div aaa
    when 1
        div bbb
    when 2
        div ccc
    default
        div '都不是'
    // 最终输出为: <div>bbb</div>
  18. 在 jade 中使用 while,前面不需要加上 -

    - var a = 0;
    while a < 3
    if (a%2 == 0 && a != 0)
        div.last #{a++}
    else
        div #{a++}

    输出为:

    <div></div>
    <div></div>
    <div class=last></div>

以上就是 jade 的基础语法了,本人学习的基础语法有源码的演示地址:https://github.com/ssgluffy/NodeJS-learning/tree/master/jade

里面还有更加详细的笔记,大家感兴趣的话可以去看看!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值