当前位置: 首页 > 工具软件 > template.js > 使用案例 >

模板引擎template.js

岳景明
2023-12-01

模板引擎

什么是模板引擎

可以根据程序员指定的模板结构和数据,自动生成一个完整的html即为模板引擎

模板引擎的好处

  1. 减少字符串的拼接操作
  2. 使代码更加清晰
  3. 使代码更易于阅读与维护

art-template

使用步骤

  1. 导入 art-template
  2. 定义数据
  3. 定义模板
  4. 调用template函数
  5. 渲染html结构
<body>
    <div id="container"></div>

    <script src="./js/template-web.js"></script>
    <!-- 定义模板 -->
    <script type="text/html" id="tpl-user">
        <h1>{{name}}+{{age}}</h1>
    </script>
    <script>
        // 定义要渲染的数据
        var data = {
            name: 'mod',
            age: 17
        };

        // 调用template函数
        var htmlStr = template('tpl-user', data);
        console.log(htmlStr);
        container.innerHTML = htmlStr;
    </script>
</body>

标准语法

  1. 输出:{{}}语法,在{{}}内可以进行变量输出或循环数组等操作
  2. 原文输出:若要输出的value值包含了html标签结构,则需要使用原文输出语法{{@value}}
  3. 条件输出: 如果要实现条件输出,可以在{{}}中使用if else if /if的方式
     {{if value}}
     输出
     {{else if newValue}
     输出new
     {{/if}}
    
  4. 循环输出:在{{}}内通过each语法循环数组,当前循环的索引使用$index进行访问,循环项使用$value进行访问
    {{each arr}}
        {{$index}} {{$value}}
    {{/each}}
    
  5. 过滤器:{{value | filterName}},过滤器语法类似管道操作符,它的上一个输出作为下一个输入;
    定义过滤器的基本语法如下:
    template.defaults.imports.filterName = function(value){//return ...}

封装一个简单的template函数

function template(id, data){
    var str = document.getElementById(id).innerHTML;
    var pattern = /{{\s*([a-zA-Z]+)\s*}}/;
    var result = null;
    while(result = pattern.exec(str)){
        str = str.replace(result[0], data[result[1]])
    }
    return str;
}
 类似资料: