前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >前端成神之路-模板引擎

前端成神之路-模板引擎

作者头像
海仔
发布2021-02-04 10:24:49
4940
发布2021-02-04 10:24:49
举报
文章被收录于专栏:海仔技术驿站海仔技术驿站

1. 模板引擎

文档:http://aui.github.io/art-template/zh-cn/

Github: https://github.com/aui/art-template

1.1 Ajax 项目中存在的问题

  1. 数据和HTML字符串拼接导致代码混乱,拼接容易出错,增加修改难度。
  2. 业务逻辑和用户界面混合,代码不易维护。
代码语言:javascript
复制
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. 使用模板引擎可以提高开发效率。
代码语言:javascript
复制
<h1>你好, {{name}}, 我今年{{age}}岁</h1>
<ul>	
    {{each}}
    <li>{{$value.hobbies}}</li>
    {{/each}}
</ul>

1.3 模板渲染

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

2. 模板语法

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

2.1 输出

将数据显示在模板中。

代码语言:javascript
复制
 <h2>{{value}}</h2>
 <h2>{{a ? b : c}}</h2>
 <h2>{{a + b}}</h2>

2.2 原文输出

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

代码语言:javascript
复制
<h2>{{@ value }}</h2>

2.3 条件判断

代码语言:javascript
复制
 {{if 条件}} ... {{/if}}
 {{if v1}} ... {{else if v2}} ... {{/if}}
代码语言:javascript
复制
{{if 条件}}
	<div>条件成立 显示我</div>
{{else}}
	<div>条件不成立 显示我</div>
{{/if}}

2.4 循环

代码语言:javascript
复制
 {{each target}}
     {{$index}} {{$value}}
 {{/each}}

2.5 导入模板变量

代码语言:javascript
复制
<div>$imports.dataFormat(time)</div>
代码语言:javascript
复制
template.defaults.imports.变量名 = 变量值;
$imports.变量名称
代码语言:javascript
复制
function dateFormat(未格式化的原始时间){
    return '已经格式化好的当前时间'
}
template.defaults.imports.dateFormat = dateFormat;
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-01-31 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 模板引擎
    • 1.1 Ajax 项目中存在的问题
      • 1.2 模板引擎的作用
        • 1.3 模板渲染
        • 2. 模板语法
          • 2.1 输出
            • 2.2 原文输出
              • 2.3 条件判断
                • 2.4 循环
                  • 2.5 导入模板变量
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档