0


【jquery Ajax 】art-template模板引擎的概念与使用

  1. ![](https://img-blog.csdnimg.cn/008ebe7339d54763ae289237b9253f27.gif)

✍️ 作者简介: 前端新手学习中。
💂 作者主页: 作者主页查看更多前端教学
🎓 专栏分享:css重难点教学 Node.js教学 从头开始学习

模板引擎的基本概念

渲染UI结构时遇到的问题

  1. $.each(res.data, function (i, item) {
  2. var str = ` <li class="list-group-item">
  3. <span class="badge" style="background-color: #5bc0de;">评论时间:${item.time}</span>
  4. <span class="badge" style="background-color: #5bc0de;;">评论名称:${item.username}</span>
  5. ${item.content}
  6. </li>`
  7. rows.push(str)
  8. })
  9. $('#cmt-list').empty().append(rows)

上述代码是通过字符串拼接的形式,来渲染UI结构。

如果UI结构比较复杂,则拼接字符串的时候需要格外注意引号之前的嵌套,如果需求发生变化,修改起来也非常麻烦。

什么是模板引擎

模板引擎,顾名思义,它可以根据程序员指定的模板结构和数据,自动生成一个完整的HTML界面。

模板引擎的好处

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

art-template简介

art-template是一个简约,超快的模板引擎,中文官网首页为首页

art-template安装

在浏览器中访问http://aui.github.io/art-template/zh-cn/docs/installation.html,找到下载链接后,鼠标右键,选择“链接另存外”,将art-template下载到本地,然后,通过<script>标签进行引入。

直接点击下载或者使用npm工具将其下载。

art-template模板引擎

art-template模板引擎的基本使用

使用传统方式渲染UI结构

  1. <body>
  2. <div id="title"></div>
  3. <div>姓名:<span id="name"></span></div>
  4. <div>年龄:<span id="age"></span></div>
  5. <div>会员:<span id="isVIP"></span></div>
  6. <div>注册时间:<span id="regTime"></span></div>
  7. <div>爱好:
  8. <ui id="hobby">
  9. <li>爱好1</li>
  10. <li>爱好2</li>
  11. </ui>
  12. </div>
  13. <script>
  14. data = {
  15. title: '<h3>用户信息</h3>',
  16. name: 'zd',
  17. age: 20,
  18. isVIP: true,
  19. regTime: new Date(),
  20. hobby: ['吃饭', '睡觉', '打豆豆']
  21. }
  22. $('#name').html(data.name);
  23. $('#age').html(data.age);
  24. $('#isVIP').html(data.isVIP);
  25. $('#regTime').html(data.regTime);
  26. var rows = [];
  27. $.each(data.hobby, function (i, item) {
  28. rows.push('<li>' + item + '</li>');
  29. })
  30. $('#hobby').html(rows);
  31. </script>

** 缺点:程序员需要经常进行手动操作进行修改。**

** art-template的使用步骤**

  1. 导入art-template
  2. 定义数据
  3. 定义模板(1.模板id2.模板数据)
  4. 调用template函数
  5. 渲染html结构

代码

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. <!-- 导入引擎和jquery -->
  9. <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.1/jquery.js"></script>
  10. <script src="./引入/template-web.js"></script>
  11. </head>
  12. <body>
  13. <!-- html元素 -->
  14. <div id="container"></div>
  15. <script type="text/html" id="tpl-user">
  16. <!-- 定义模板页面内容,注意type需要是text/html
  17. 双大括号表示里面需要填写内容 下面data对象里的name属性-->
  18. <h1>{{name}}</h1>
  19. </script>
  20. <script>
  21. //定义模板数据
  22. var data = {
  23. name: '张三'
  24. }
  25. //调用模板 使用template调用模板 第一个是模板页面的script标签的id,第二个数据为模板数据
  26. let str = template('tpl-user', data);
  27. //选择div dom元素将调用模板得到的内容写到里面
  28. $('#container').html(str);
  29. </script>
  30. </body>
  31. </html>

art-template标准语法

什么是标准语法

art-template提供了{{}}这种语法格式,在大括号中可以进行变量输出,或循环数组等操作,这种语法在art-template中被称为标准语法。

标准语法——输出

变量,对象属性,三元表达式,逻辑,加减乘除等表达式。

标准语法——原文输出

  1. {{@ value}}

如果要输出的value值中,包含了HTML标签结构,则需要使用原文输出语法,才能保证HTML标签被正常渲染。

增加一个test属性 进行输出

  1. test: '<h3>测试原文输出</h3>'
  1. <h1>{{name}}.........{{test}}</h1>

使用@ 进行输出

  1. <h1>{{name}}.........{{@test}}</h1>

标准语法——条件输出

如果要实现条件输出,则可以在{{}}中使用if ...elseif..../if的方式,进行条件输出。

新添属性

  1. flag: 1

页面调用

  1. <div>
  2. {{if flag == 0}}
  3. flag 等于0
  4. {{else if flag==1}}
  5. flag 不等于0 等于1
  6. {{/if}}
  7. </div>

标准语法——循环输出

如果要实现循环输出,则可以在{{}}内,通过each语法循环数组,当前循环的索引使用$index,进行访问,当前的循环项使用$value进行访问。

在模板数据中再次定义一个新属性hobby。

  1. hobby: ['吃饭', '电动', '睡觉']

使用页面内容进行调用模板数据

  1. <ul>
  2. {{each hobby}}
  3. <li> 索引是:{{$index}},循环项是:{{$value}}</li>
  4. {{/each}}
  5. </ul>

标准语法——过滤器

过滤器的本质,就是一个function处理函数。

** 定义一个格式化时间的过滤器**

在模板数据中再次定义一个事件属性。

  1. regTime: new Date(),

定义过滤器

  1. template.defaults.imports.dateFormat = function (data) {
  2. let Y = data.getFullYear();
  3. let M = data.getMonth();
  4. let D = data.getDate();
  5. return Y + '-' + M + '-' + D;
  6. }

页面调用模板并启用过滤器

  1. <h3>{{regTime |dateFormat}}</h3>

结果

标签: 前端 javascript css

本文转载自: https://blog.csdn.net/m0_62360527/article/details/127691005
版权归原作者 坚毅的小解同志 所有, 如有侵权,请联系我们删除。

“【jquery Ajax 】art-template模板引擎的概念与使用”的评论:

还没有评论