9.模板引擎

介绍

  • art-template 是一个简约、超快的模板引擎。
  • 它采用作用域预声明的技术来优化模板渲染速度,从而获得接近 JavaScript 极限的运行性能,并且同时支持 NodeJS 和浏览器。在线速度测试。
  • 通过跨域/ajax获取到数据后通过模板引擎方便遍历成html片段

安装

1.npm

npm install art-template --save

2.源代码

template-web.js
在html中引入:

<script src="template-web.js" type="text/javascript" charset="utf-8"></script>

使用基本步骤

1.创建type="text/html"的script标签;

<script type="text/html">
	
</script>

2.添加id名称

<script type="text/html" id="temptest">
	
</script>

3.template()方法获取html片段;

template("id名称",对象名称)

基本语法

得到数据中的数据

{{value}}

循环操作

{{each result as value i}}
	
{{/each}}

转义

#的使用{{#value}}

条件判断

{{if xxx}}
{/if}

例子

1.输出一维数组

<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="UTF-8">
		<title>IE</title>
		<script src="template-web.js"></script>
	</head>
	<body>
		<div id="content"></div>
		<script id="test1" type="text/html" charset="utf-8">
			{{if Test}}
				<h1>{{title}}</h1>
				<ul>
					{{each list as value i}}
					<li>{{i}}{{value}}</li>
					{{/each}}
				</ul>
			{{/if}}
		</script>
		<script>
			var data = {
				title: '基本例子',
				Test: true,
				list: ['文艺', '博客', '摄影', '电影', '民谣', '旅行', '吉他']
			};
			var html=template('test1',data);
			document.getElementById('content').innerHTML = html;
		</script>
	</body>
</html>

2.输出二维数组

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>跨域基本步骤</title>
		<script src="../a11_模板引擎/template-web.js" type="text/javascript" charset="utf-8"></script>
	</head>
	<body>
		<div class="box">
			<input type="text" name="" id="keywords" value="" placeholder="请输入关键字" />
			<input type="button" class="btn" name="" id="" value="查询" />
			<ul>
				<li>1</li>
				<li>2</li>
				<li>3</li>
				<li>4</li>
				<li>5</li>
			</ul>
		</div>
	</body>
	<script type="text/html" id="temptest">
	<!-- 1.创建type="text/html"的script标签;2.添加id名称;3.template("id名称",对象名称)方法获取html片段; -->
		{{each result as value i}}
		<li>{{value[0]}}</li>
		{{/each}}
	</script>
	<script type="text/javascript">
		window.onload = function() {
			var btn = document.querySelector(".btn");
			var ulbox = document.querySelector(".box ul");
			btn.onclick = function() {
				var keywordVle = document.querySelector("#keywords").value;
				// 1.动态创建script标签
				var script = document.createElement("script");
				// 2.获取地址
				script.src = "http://suggest.taobao.com/sug?code=utf-8&q=" + keywordVle + "&callback=test";
				// 3.回调
				window["test"] = function(data) {
					console.log(data);
					var html=template("temptest",data);
					console.log(html);
					 ulbox.innerHTML = html;
				}; 
				var head = document.querySelector("head");
				head.appendChild(script);
			}
		}
	</script>
</html>
上一篇:node:windows script host 錯誤 console未定义


下一篇:html/CSS/JS