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

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

特性

  • 拥有接近 JavaScript 渲染极限的的性能
  • 调试友好:语法、运行时错误日志精确到模板所在行;支持支持在模板文件上打断点(Webpack Loader)
  • 支持压缩输出页面中的 HTML、CSS、JS 代码
  • 支持 Express、Koa、Webpack
  • 支持模板继承与子模板
  • 兼容 EJS、Underscore、LoDash 模板语法
  • 模板编译后的代码支持在严格模式下运行
  • 支持 JavaScript 语句与模板语法混合书写
  • 支持自定义模板的语法解析规则
  • 浏览器版本仅 6KB 大小

用法

(1)、使用

引用简洁语法的引擎版本,例如:   

(2)、表达式

{{ 与 }} 符号包裹起来的语句则为模板的逻辑表达式。

(3)、输出表达式

对内容编码输出: {{content}}  
不编码输出: {{#content}}  

编码可以防止数据中含有 HTML 字符串,避免引起 XSS 攻击。

(4)、条件表达式

{{if admin}} 
 

admin

{{else if code > 0}}

master

{{else}}

error!

{{/if}}

(5)、遍历表达式

{{each list as value index}} 
 
  • {{index}} - {{value.user}}
  • {{/each}}

    (6)、模板包含表达式

    用于嵌入子模板。

    {{include 'template_name'}}  

    子模板默认共享当前数据,亦可以指定数据:{{include 'template_name' news_list}}  

    例子1

    DOCTYPE HTML> 
    <html> 
    <head> 
    <meta charset="UTF-8"> 
    <title>basic-demotitle> 
    <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-demotitle> 
    <script src="../dist/template.js">script> 
    head> 
      
    <body> 
     <h1>不转义HTMLh1> 
     <div id="content">div> 
     <script id="test" type="text/html"> 
     <p>不转义:{{#value}}</p> 
     <p>默认转义: {{value}}</p> 
     script> 
      
     <script> 
     var data = { 
      value: 'hello world!' 
     }; 
     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-demotitle> 
    <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> 

     

    你可能感兴趣的:(js模板引擎art-template使用方法)