模板引擎
渲染 UL 结构遇到的问题
上述代码是通过字符串拼接的形式,来渲染Ul结构。
如果U结构比较复杂,则拼接字符串的时候需要格外注意引号之前的嵌套。且一旦需求发生变化,修改起来也非常麻烦。
什么是模板引擎
模板引擎,顾名思义,它河以根据程序员指定的模板结构和数据,自动生成一个完整的HTML页面。
模板引擎的好处
减少了字符串的拼接操作
使代码结构更清晰
使代码更易于阅读和维护
模板引擎怎么用
下载地址 : http://aui.github.io/art-template/zh-cn/
模板引擎的使用步骤
1. 导入模板引擎
2. 定义需要渲染的数据
3. 定义模板 (模板的 HTML 结构, 必须定义到 script 中, script要设置id名和type="text/html"属性)
4. 调用 tem plate 函数
代码示例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <!-- 1. 导入模板引擎 --> <!-- 在 window 全局, 多声明一个函数, 叫做 template ('模板的Id', 需要渲染的数据对象) --> <script src="js/template-web.js"></script> <script src="js/jquery-3.6.0.js"></script> </head> <body> <div id="container"> </div> <!-- 3. 定义模板 --> <!-- 3. 模板的 HTML 结构, 必须定义到 script 中 --> <script type="text/html" id="tpl-user"> <!-- 把这个script 中的内容不要当做 js 执行, 要当做 HTML 执行 --> <h1>{{name}} ----- {{age}}</h1> </script> <script> // 2. 定义需要渲染的数据 let data = {name: 'zs', age: 20} // 4. 调用 tem plate 函数 let htmlStr = template('tpl-user', data) $('#container').html(htmlStr); </script> </body> </html>
模板引擎的标准语法
1.什么是标准语法
art-template提供了 {} 这种语法格式,在{{}} 内可以进行变量输出,或循环数组等操作,这种{{}}语法在art-template中被称为标准语法。
2. 标准语法 - 输出
在 {{}} 语法中,可以进行变量的输出、对象属性的输出、三元表达式输出、逻辑或输出、加减乘除等表达式输出。
3. 标准语法 - 原文输出
如果要输出的value值中,包含了HTML标签结构,则需要使用原文输出语法,才能保证HTML标签被正常渲染。
4. 标准语法 - 条件输出
如果要实现条件输出 , 则可以在 {{}} 中使用 if ... else if ... /if 的方式 , 进行按需输出
5. 标准语法 - 循环输出
如果要实现循环输出, 则可以在 {{}} 内, 通过 each 语法循环数组, 当前循环的索引使用 $index 进行访问, 当前的循环项使用 $value 进行访问.
6. 标准语法 - 过滤器
过滤器的本质就是一个 function 函数
过滤器语法类似 管道操作符, 它的上一个输出作为下一个输入.
定义过滤器的基本语法如下 :
使用
定义一个格式化时间的过滤器 dateFormat 如下 :