模板引擎artTemplate

1. 模板引擎的基本概念

1.1 模板引擎

模板引擎是第三方模塊。
讓開發者以更加有好的方式拼接字符串,使項目代碼更加清晰,更加易於維護。html

1.2 art-template模板引擎

  1. 在命令工具中使用 nopm install art-template 命令進行下載
  2. 使用 const template = require('art-template')引入模板引擎
  3. 告訴模板引擎要拼接的數據和模板在哪裏 const html = template('模板路徑',數據);
  4. 使用模板語法告訴模板引擎,模板與數據應該如何進行拼接

1.3 art-template代碼示例

 // 導入模板引擎模塊
 const template = require('art-template');
 // 將特定模板與特定數據進行拼接
 const html = template('./views/index.art',{
    data: {
        name: '張三',
        age: 20
    }
 }); 
<div>
    <span>{{data.name}}</span>
    <span>{{data.age}}</span>
</div>
2. 模板引擎語法

2.1 模板語法

  • art-template同時支持兩種模板語法:標準語法和原始語法
  • 標準語法:可讓模板更容易讀寫,原始語法具備強大的邏輯處理能力

標準語法:{{數據}}
原始語法: <% = 數據 %>ide

2.2 輸出

將某項數據輸出在模板中,標準語法與原始語法以下:工具

  • 標準語法: {{ 數據 }}
  • 原始語法: <% = 數據 %>
<!-- 標準語法 -->
<h2>{{value}}</h2>
<h2>{{a ? b : c}}</h2>
<h2>{{a + b}}</h2>

 <!-- 原始語法 -->
<h2><%= value %></h2>
<h2><%= a ? b : c %></h2>
<h2><%= a + b %></h2>

2.3 原文輸出

若是數據中攜帶HTML標籤,默認模板引擎不會解析標籤,會將其轉義爲輸出。網站

  • 標準語法: {{ @ 數據 }}
  • 原始語法: <%-數據 %>
<!-- 標準語法 -->
<h2>{{@ value }}</h2>
<!-- 原始語法 -->
<h2><%- value %></h2>

2.4 條件判斷

標準語法:ui

<!-- 標準語法 --> 
{{if 條件}} ... {{/if}}
{{if v1}} ... {{else if v2}} ... {{/if}}

原始語法:spa

<!-- 原始語法 -->
<% if (value) { %> ... <% } %>
<% if (v1) { %> ... <% } else if (v2) { %> ... <% } %>

2.5 循環

  • 標準語法: {{ each 數據}} {{/each}}
  • 原始語法: <% for() {%> <%}%>
 <!-- 標準語法 -->
 {{each target}}
     {{$index}} {{$value}}
 {{/each}}
  <!-- 原始語法 -->
 <% for(var i = 0; i < target.length; i++){ %>
     <%= i %> <%= target[i] %>
 <% } %>

2.6 子模版

使用子模版能夠將網站公共區塊(頭部、底部)抽離到單獨的文件中。htm

  • 標準語法: {{ include '模板'}}
  • 原始語法: <%include('模板')%>
{{ include './common/header.art'}}
<% include ('./common/header.art')%>
<div>{{ msg }}</div>
<% include ('./common/footer.art')%>
{{include './common/footer.art'}}

2.7 模板繼承

使用模板繼承能夠將網站HTML骨架抽離到單獨的文件中,其餘頁面能夠繼承骨架文件。blog

2.8 模板繼承示例

2.9 模板配置

  1. 向模板中導入變量 template.defaults.imports.變量 = 變量值;
  2. 設置模板根目錄 template.defaults.root = 模板目錄;
  3. 設置模板默認後綴 template.defaults.extname = '.art'
 
相關文章
相關標籤/搜索