1. 模板引擎

art-template中文文档:https://www.kancloud.cn/lanju/art-template/1500276

1.1 Ajax 项目中存在的问题

  1. 数据和HTML字符串拼接导致代码混乱,拼接容易出错,增加修改难度。

  2. 业务逻辑和用户界面混合,代码不易维护。

for (var i = 0; i < result.length; i++) {html += '<!DOCTYPE html>\<html lang="en">\<head>\<meta charset="UTF-8">\<title>'+ title +'</title>\</head>\<body>\<h1 οnclick="sayHi('+name+')">你好,'+name+' 我今年 '+age+'岁</h1>\<ul>\<li title="'+hobbies[0]+'">'+hobbies[0]+'</li>\</ul>\</body>\</html>';
}

1.2 模板引擎的作用

  1. 使用模板引擎提供的模板语法可以使数据和HTML字符串拼接的更加美观,代码易于维护。
  2. 模板引擎能够使用户界面的数据拼接和JavaScript业务逻辑分离,增加程序的可扩展性。
  3. 使用模板引擎可以提高开发效率。
<h1>你好, {{name}}, 我今年{{age}}岁</h1>
<ul>  {{each}}<li>{{$value.hobbies}}</li>{{/each}}
</ul>

1.3 模板渲染

<script src="./js/template-web.js"></script>
<script type="text/html" id="tpl"><div><span>{{name}}</span><span>{{age}}</span></div>
</script>
 // 将特定模板与特定数据进行拼接const html = template('tpl',{name: '张三',age: 20});

2. 模板语法

模板语法的作用是告诉模板引擎数据和模板要如何进行拼接。

2.1 输出

将数据显示在模板中。

 <h2>{{value}}</h2><h2>{{a ? b : c}}</h2><h2>{{a + b}}</h2>

2.2 原文输出

如果数据中携带HTML标签,默认情况下,模板引擎不会解析标签,会将其转义后原文输出。

<h2>{{@ value }}</h2>

2.3 条件判断

 {{if 条件}} ... {{/if}}{{if v1}} ... {{else if v2}} ... {{/if}}
{{if 条件}}<div>条件成立 显示我</div>
{{else}}<div>条件不成立 显示我</div>
{{/if}}

2.4 循环

 {{each target}}{{$index}} {{$value}}{{/each}}

2.5 导入模板变量

<div>$imports.dataFormat(time)</div>
template.defaults.imports.变量名 = 变量值;
$imports.变量名称
function dateFormat(未格式化的原始时间){return '已经格式化好的当前时间'
}
template.defaults.imports.dateFormat = dateFormat;

art-template模板引擎详解相关推荐

  1. JavaScript模板引擎详解

    JavaScript模板引擎是一种用于生成HTML.XML和其他文本格式的工具,它将特定的模板语法转换为相应的文本输出,通常用于前端开发中动态生成页面内容.下面是一个JavaScript模板引擎的详细 ...

  2. Flask HTML模板引擎详解

    模板引擎说明: 模板文件就是按照一定的规则书写的展示效果的HTML文件模板引擎就是负责按照指定规则进行替换的工具模板引擎选择jinja2. 一.渲染模板的方法 1.将渲染的模板进行返回 1 rende ...

  3. twig模板引擎详解(下集:开发者篇)【twig模板引擎中文使用教程】

    上集重点介绍了twig模板的使用,供模板设计者阅读,下集供php开发者阅读,讲解如何调用和扩展twig,这一篇安装和采用版本将衔接上集内容. Twig_Environment: 该类的实例是twig模 ...

  4. thymeleaf模板引擎详解1

    做了几年的java web开发,我使用最多的模板引擎应该是freemarket和JSP了,不过最近公司开始引入springboot作为开发的框架,这让我接触到了一个新的模板引擎,也就是thymelea ...

  5. Thymeleaf模板引擎详解

    Thymeleaf 是一个流行的模板引擎,该模板引擎采用 Java 语言开发.能够处理html xml css cs等内容.此外,在Java体系下,还有类似的模板引擎如jsp,FreeMarker等. ...

  6. flask中jinjia2模板引擎详解3

    接上文 模板继承 Jinji2中的模板继承是jinjia2比较强大的功能之一. 模板继承可以定义一个父级公共的模板,把同一类的模板框架定义出来共享. 这样做一方面可以提取共享代码,减少代码冗余和重复的 ...

  7. php ci框架 模板引擎,详解CodeIgniter框架实现的整合Smarty引擎DEMO

    CodeIgniter框架实现的整合Smarty引擎DEMO示例 本文实例讲述了CodeIgniter框架实现的整合Smarty引擎.分享给大家供大家参考,具体如下: Smarty的模板机制很强大,一 ...

  8. Django框架的模板层详解

    目录 一.模板简介 二.模板语法之变量 三.模板之过滤器 四.模板之标签 for标签 for ... empty if 标签 with 五.自定义标签和过滤器 六.模板导入和继承 模板导入: 模板继承 ...

  9. 模板模式详解、模板模式怎么用、模板模式模板代码

    模板模式详解.模板模式怎么用.模板模式模板代码 文章目录 模板模式详解.模板模式怎么用.模板模式模板代码 @[toc] 模板模式定义 使用场景 优点 代码实操 模板模式定义 在模板模式(Templat ...

最新文章

  1. 太赫兹芯片是什么原理_太赫兹波养生鞋 芯片、鞋垫和材质的详细了解专利技术~太赫兹芯...
  2. phplivechat安卓app下载_PHP在线网页客服系统PHP Live Chat中文版下载
  3. python的none是什么-python中stream=None什么意思?
  4. 如何用JavaScript判断dom是否有存在某class的值?
  5. junit4/5 getDefaultClassLoader()Ljava/lang/ClassLoader;
  6. 测试对bug如何分析和定位
  7. 群同态基本定理证明_群论(7): 群代数, 群表示基础
  8. WCF系列(1)—— CustomBehavior 入门
  9. Tampermonkey笔记-脚本的搭建和基本使用
  10. 联级阴影贴图CSM(Cascaded shadow map)原理与实现
  11. 零基础如何考过二级建造师?
  12. ERROR: function group_concat(character varying) does not exist
  13. 【面经】各大AI研究院共35场NLP算法岗面经奉上
  14. Apache基本设置
  15. jtopo node.text换行_JTopo 使用
  16. 贴片铝电容识别及型号_电路板上的贴片电容怎样核实它的型号及参数是多少
  17. 12.寻光集后台管理系统-库存信息(后端)
  18. 秦王扫六合,虎视何雄哉
  19. MySQL插入数据时,如果记录不存在则insert,如果存在则update
  20. 安卓自定义view系列之paint画笔类详解

热门文章

  1. Diango博客--9.归档、分类和标签页
  2. python 第三方模块之 APScheduler - 定时任务
  3. python对excel表统计视频教程_Python实现对excel文件列表值进行统计的方法
  4. python命令方式和关键字
  5. 设计模式之单例模式(C++代码实现)
  6. 一篇英文文档中找出频数最多的10个单词
  7. 浅析bootstrap原理及优缺点
  8. Python--递归
  9. bash/shell编程学习(2)
  10. URAL 2047 Maths 打表 递推