为什么要使用模板引擎
无论是Ajax或者跨域,获取数据后渲染到前端界面的方式就是动态生成HTML标签。
生成HTML标签可以用过拼接字符串的方式来实现。但是这种方式在结构比较复杂的场景下不便于操作和维护,出错率较高。
这时候就会用到模板引擎,通过模板引擎可以更方便的生成HTML标签。
什么是模板引擎
模板引擎的本质就是将数据和模板结合起来生成HTML片段。所以模板引擎需要两个组成部分:模板和数据。通过数据将模板
指定的标签动态生成,方便维护。
artTemplate模板引擎
腾讯出品的开源模板引擎,
使用步骤:
1.引入js文件;
<script type="text/javascript" src="js/template.js"></script>
2.定义模板;
3.将数据和模板结合起来生成HTML标签;
4.渲染界面
artTemplate使用
A 基础使用
<div id="container"></div>
//基础使用<script type="text/html" id="bookList"><!-- 模板 --><h2>{{title}}</h2>{{each name value i}}<div class="name">{{value}}</div>{{/each}}</script><script type="text/javascript">var data = {title: "四大名著图书信息",name:["三国演义","水浒传","红楼梦","西游记"]}var html = template("bookList",data);var container = document.querySelector('#container');container.innerHTML = html;</script>
B 条件判断
<script type="text/html" id="bookList">{{if isAdmin}}<h2>{{title}}</h2>{{each name value i}}<div class="name">{{value}}</div>{{/each}}{{/if}}{{if !isAdmin}}<h2>没有查询到任何数据</h2>{{/if}}</script><script type="text/javascript">var data = {title: "条件判断",isAdmin: true,name:["文艺","博客","摄影","电影","民谣"]}var html = template("bookList",data);var container = document.querySelector('#container');container.innerHTML = html;</script>
C 对象中添加数组
<script type="text/html" id="bookList">{{each arr value i}}<div class="name">{{value}}</div>{{/each}}</script><script type="text/javascript">var data = ["文艺","博客","摄影","电影","民谣"];var temp = {};temp.arr = data;var html = template("bookList",temp);var container = document.querySelector('#container');container.innerHTML = html;</script>
D 转义与非转义
<script type="text/html" id="bookList"><p>转义:{{value}}</p><p>非转义:{{@value}}</p></script><script type="text/javascript">var data = {value:"<span style='color: #007aff; font-size: 20px'>artTemplate</span>"}var html = template("bookList",data);var container = document.querySelector('#container');container.innerHTML = html;</script>
