art-template模板引擎详解

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;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Art-template是一款高性能、轻量级的模板引擎,适用于Node.js和浏览器环境。它以简洁明了的语法,支持模板继承、条件判断、循环遍历等常见功能,同时还提供了强大的过滤器和自定义标签功能。 Art-template的使用逻辑如下: 1. 安装Art-template 可以通过npm安装Art-template,命令如下: ```npm install art-template --save``` 2. 引入Art-template 在Node.js中,可以使用require语句引入Art-template: ```const template = require('art-template');``` 在浏览器中,可以使用script标签引入Art-template: ```<script src="path/to/art-template.js"></script>``` 3. 编写模板 Art-template使用{{}}包裹变量、表达式或语句。例如,以下是一个简单的模板: ``` <!DOCTYPE html> <html> <head> <title>{{title}}</title> </head> <body> <h1>{{title}}</h1> <p>{{content}}</p> </body> </html> ``` 4. 渲染模板 使用template方法可以将模板渲染成字符串。例如: ``` const template = require('art-template'); const data = { title: 'Art-template', content: 'A lightweight and powerful template engine' }; const html = template('path/to/template', data); console.log(html); ``` 在上面的例子中,我们将data对象传递给了模板,使用{{}}包裹的变量会被替换成data对象中的对应值,最终输出渲染后的HTML字符串。 5. 高级用法 除了基本的变量替换,Art-template还支持模板继承、条件判断、循环遍历等高级用法。例如,以下是一个使用if语句和each语句的模板: ``` {{if isAdmin}} <p>Welcome, admin</p> {{else}} <p>Welcome, user</p> {{/if}} <ul> {{each list}} <li>{{$index}}. {{$value}}</li> {{/each}} </ul> ``` 以上就是Art-template的使用逻辑,希望能对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值