使用模板引擎的动态渲染

使用模板引擎的动态渲染


一、模板引擎的介绍
模板引擎(这里特指用于Web开发的模板引擎)是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的HTML文档。
模板引擎可以让(网站)程序实现界面与数据分离,业务代码与逻辑代码的分离,这就大大提升了开发效率,良好的设计也使得代码重用变得更加容易。

二、一些常用的模板引擎

在这里我是用的是 art-template 作为模板引擎,接下来我将介绍下他的使用方法和注意事项

三、模板引擎的使用步骤

  1. 根据项目的需要,选用一个适合的模板引擎
  2. 下载模板引擎的 JavaScript 文件
  3. 将下载好的模板通过script标签引入到页面中即可
    <script type="text/javascript" src='template-web.js'></script>
  4. 创建一个写模板
  5. 准备模板所需要的数据
  6. 通过模板引擎的 JavaScript 提供的函数将模板和数据整合得到渲染结果
  7. 将渲染结果添加到页面的元素中

四、模板引擎使用的注意事项

  • 一般我们使用 script 标签将需要的模板包裹起来,script 标签具有以下几个好处
    1. script 标签的内容永远都不会显示在界面上。
    2. 如果 script 标签 中的 type 属性不等于 text/javascript,则 标签内部的内容不会作为 JavaScript 执行。
    3. script标签中的 id 属性是为后面借用模板引擎 API 渲染数据做准备
    <script id='tmpl' type="text/x-art-template"></script>

    注意: script 标签 中的 type 属性一定不能设置为 text/javascript,我这里设置为text/x-art-template

  • 使用template(filename, content)方法进行渲染模板,其中参数filenamestringcontent可以为string也可以是一个Object,如果 contentObject,则渲染模板并返回 string;如果 contentstring,则编译模板并返回 function

五、动态表格渲染的案例

  • 页面中的表格
<body>
	<table id='text'></table>
<body>
  • 将 art-template 模板引擎引入到页面中
<script type="text/javascript" src='template-web.js'></script>
  • 创建一个模板
<script id='tmpl' type="text/x-art-template">
	{{each comments}}
		<tr>
			<td>{{$value.author}}</td>	
			<td>{{$value.telephone}}</td>
			<td>{{$value.E-mail}}</td>
		</tr>
	{{/each}}
</script>

art-template 模板更多的语法规则,请见 art-template 官方文档:https://aui.github.io/art-template/zh-cn/docs/syntax.html

  • 在JS代码中编译模板,将渲染的结果呈现在页面上
<script>
	//  创建一个 XMLHttpRequest 类型的对象
	var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP');
	xhr.open('GET','test.php');
	xhr.send();
	xhr.onreadystatechange = function () {
		if (this.readyState !==4) return;
		var dest = JSON.parse(this.responseText);
		
		// 准备模板所需要的数据
		var context = {comments:dest.data} 
		
		// 借用模板引擎 API 渲染数据
		var html = template('tmpl',context);

		// 将渲染的结果呈现在页面table中
	   document.getElementById('text').innerHTML = html;
	  }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值