模板引擎是什么?art-template怎么使用?

模板引擎

干啥用的?

假如说我的后台返回了一串这样的数据,让我们去渲染到界面以表格的形式显示。年龄大于18显示成年小于18显示未成年(这里就直接var来声明了)。

 var arr = [
            {name : "last", age : 9,message:"s6第一个王者"},
            {name : "ning", age : 18,message:"s8Fmvp"},
            {name : "ming", age : 16,message:"电竞铁人"},
            {name : "theshy", age : 19,message:"世一上"},
            {name : "otto", age :25,message:"轮椅人"},
        ]

如果用原生js的话我的思路是这样的:

<table>
        <thead><tr><th>姓名</th><th>年龄</th><th>含金量</th></tr></thead>
        <tbody id="tdd"></tbody>
</table>
var tbo=document.getElementById("tdd");
        for(var i=0;i<arr.length;i++){
            var tr=document.createElement("tr");
            for (const key in arr[i]) {
                var td=document.createElement("td");
                td.innerHTML=arr[i][key];
                tr.appendChild(td);
            }
            tbo.appendChild(tr);
        }

通过循环和遍历让数据填到页面上
而模板引擎就是完成这种数据和页面分离的技术

怎么用的?

今天说的主要是art-template这种引擎的使用方法。
在使用模板引擎是需要准备几个步骤

1.导入模板引擎(和jquery一样使用前都要导入文件)

如果需要文件可以私信我,也可以自行下载。

 <script src="./template-web.js"></script>

2.准备一个模板

这个模板有几个要注意的地方

  • 必须是scrip标签
  • scrip标签必须有type属性,并且type属性不能为text/javascript 最好是text/html (有标签提示)
  • 必须有一个id
 <script type="text/html" id="tpl">
        //这里拼接html结构
 </script>

3.调用模板 生成html,template(模板的id, 需要填充到模板里面的数据)

 <script>
         var arr = [
            {name : "last", age : 9,message:"s6第一个王者"},
            {name : "ning", age : 18,message:"s8Fmvp"},
            {name : "uzi", age : 16,message:"yyds"},
            {name : "theshy", age : 19,message:"世一上"},
            {name : "otto", age :25,message:"轮椅人"},
        ];
        var html = template("tpl", {list : arr});
    </script>

下面介绍模板引擎的循环和分支语句

循环: {{each}} 结束语法{{/each}}
分支: {{if}} 的结束语法 {{/if}}
写语法的时候 一定注意要写闭合语法
用法示例:

{{each list value}}
      <tr>
          <td>{{value.name}}</td>
          {{if value.age > 18}}
          <td>成年</td>

          {{else}}
            <td>小朋友</td>
          {{/if}}
      </tr>
{{/each}}

each后面的 list是你要便利的数组,而value就是值。

{{ }} 这个符号既可以下愈发 也可以用于变量取值

上面的案例我们使用模板引擎做一下:

<body>
    <table>
        <thead>
            <tr>
                <th>姓名</th>
                <th>年龄</th>
                <th>含金量</th>
            </tr>
        </thead>
        <tbody id="tdd"></tbody>
    </table>
    <script src="./02-template/template-web.js"></script>

    <!-- 2. 准备一个模板 -->
    <script type="text/html" id="tpl">
        {{each list value}}
        <tr>
            <td>{{value.name}}</td>
            <!-- <td>{{value.age}}</td> -->

            {{if value.age > 18}}
            <td>成年</td>

            {{else}}
            <td>未成年</td>
            {{/if}}
            <td>{{value.message}}</td>
        </tr>
        {{/each}}
    </script>
    <script>
        var arr = [{
                name: "last",
                age: 9,
                message: "s6第一个王者"
            },
            {
                name: "ning",
                age: 18,
                message: "s8Fmvp"
            },
            {
                name: "uzi",
                age: 16,
                message: "yyds"
            },
            {
                name: "theshy",
                age: 19,
                message: "世一上"
            },
            {
                name: "otto",
                age: 25,
                message: "轮椅人"
            },
        ];
        var html = template("tpl", {
            list: arr
        });
        var tbo=document.getElementById("tdd");
        tbo.innerHTML+=html;
    </script>
</body>

然后我们来看看效果图:
在这里插入图片描述

看起来没啥屌用是吧,我用原生js写比这还好理解一些,但是数据如果多了,那么我建议使用模板引擎。

(如果这篇文章有什么问题请及时联系我!)

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值