artTemplate是一款js模板引擎,可对服务器端响应回来的数据进行渲染,将其展示到页面上。
其内部实现原理主要是借助正则表达式查找匹配的内容,然后用响应回来的数据对其替换。
其实现原理如下代码所示:
1.原理的核心是如下封装的这个函数:myTemplate
window.zane = {
myTemplate:function (template,data) {
var tplStr = document.querySelector("#" + template).innerHTML;
var reg = /{{(\w+)}}/;
/**
reg.exec() 方法
功能:用正则调用,通过该方法查找匹配的内容
参数:字符串
返回值: 返回结果数组,找不到就会返回null
*/
var result = null;
while (result = reg.exec(tplStr)){
tplStr += tplStr.replace(result[0],data[result[1]]);
}
return tplStr;
}
};
2.引入封装好的myTemplate函数,并定义一个模板,例如:
<script src="myTemplate.js"></script>
<script id="template" type="text/html">
<h1>我是花心{{luobo}}</h1>
<h1>我是空心{{baicai}}</h1>
</script>
<script>
var json =
{
"luobo":"大萝卜",
"baicai":"大白菜"
};
var tplStr = zane.myTemplate("template",json);
doument.body.innerHTML = tplStr;
</script>