js模板引擎art-template使用方法


art-template是款性能卓越的 js 模板引擎 https://aui.github.io/art-template/

特性

chart

  • 擁有接近 JavaScript 渲染極限的的性能
  • 調試友好:語法、運行時錯誤日志精確到模板所在行;支持支持在模板文件上打斷點(Webpack Loader)
  • 支持壓縮輸出頁面中的 HTML、CSS、JS 代碼
  • 支持 Express、Koa、Webpack
  • 支持模板繼承與子模板
  • 兼容 EJSUnderscoreLoDash 模板語法
  • 模板編譯后的代碼支持在嚴格模式下運行
  • 支持 JavaScript 語句與模板語法混合書寫
  • 支持自定義模板的語法解析規則
  • 瀏覽器版本僅 6KB 大小

用法

(1)、使用

引用簡潔語法的引擎版本,例如: <script src="dist/template.js"></script>  

(2)、表達式

{{ 與 }} 符號包裹起來的語句則為模板的邏輯表達式。

(3)、輸出表達式

對內容編碼輸出: {{content}}  
不編碼輸出: {{#content}}  

編碼可以防止數據中含有 HTML 字符串,避免引起 XSS 攻擊。

(4)、條件表達式

{{if admin}} 
 <p>admin</p> 
{{else if code > 0}} 
 <p>master</p> 
{{else}} 
 <p>error!</p> 
{{/if}} 

(5)、遍歷表達式

{{each list as value index}} 
 <li>{{index}} - {{value.user}}</li> 
{{/each}} 

(6)、模板包含表達式

用於嵌入子模板。

{{include 'template_name'}}  

子模板默認共享當前數據,亦可以指定數據:{{include 'template_name' news_list}}  

例子1

<!DOCTYPE HTML> 
<html> 
<head> 
<meta charset="UTF-8"> 
<title>basic-demo</title> 
<script src="../dist/template.js"></script> 
</head> 
<body> 
<div id="content"></div> 
<script id="test" type="text/html"> 
{{if isAdmin}} 
<h1>{{title}}</h1> 
<ul> 
 {{each list as value i}} 
  <li>索引 {{i + 1}} :{{value}}</li> 
 {{/each}} 
</ul> 
{{/if}} 
</script> 
<script> 
var data = { 
 title: '基本例子', 
 isAdmin: true, 
 list: ['文藝', '博客', '攝影', '電影', '民謠', '旅行', '吉他'] 
}; 
var html = template('test', data); 
document.getElementById('content').innerHTML = html; 
</script> 
</body> 
</html>

 

例子2

<html> 
<head> 
<meta charset="UTF-8"> 
<title>no escape-demo</title> 
<script src="../dist/template.js"></script> 
</head> 
  
<body> 
 <h1>不轉義HTML</h1> 
 <div id="content"></div> 
 <script id="test" type="text/html"> 
 <p>不轉義:{{#value}}</p> 
 <p>默認轉義: {{value}}</p> 
 </script> 
  
 <script> 
 var data = { 
  value: '<span style="color:#F00">hello world!</span>' 
 }; 
 var html = template('test', data); 
 document.getElementById('content').innerHTML = html; 
 </script> 
</body> 
</html> 

 

art-template

<!DOCTYPE HTML> 
<html> 
<head> 
<meta charset="UTF-8"> 
<title>include-demo</title> 
<script src="../dist/template.js"></script> 
</head> 
  
<body> 
<div id="content"></div> 
<script id="test" type="text/html"> 
<h1>{{title}}</h1> 
{{include 'list'}} 
</script> 
<script id="list" type="text/html"> 
<ul> 
 {{each list as value i}} 
  <li>索引 {{i + 1}} :{{value}}</li> 
 {{/each}} 
</ul> 
</script> 
  
<script> 
var data = { 
 title: '嵌入子模板', 
 list: ['文藝', '博客', '攝影', '電影', '民謠', '旅行', '吉他'] 
}; 
var html = template('test', data); 
document.getElementById('content').innerHTML = html; 
</script> 
</body> 
</html> 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM