首页 > 其他 > 详细

template模板引擎原理

时间:2019-10-18 16:51:14      阅读:69      评论:0      收藏:0      [点我收藏+]
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
//模板语法 <script type="text/template" id="underscore"> <ul> <% arr.forEach(function(value,index){%> <li><%=value%></li> <%})%> </ul> </script> <script>
//引擎函数 function template(templateString) { templateString = templateString.replace(/\n/g,"\\n"); var _p=""; var source = ""; var rules = { value:/<%=([\s\S]+?)%>/, express:/<%([\s\S]+?)%>/ }; var regexp = new RegExp(rules.value.source +‘|‘+ rules.express.source,‘g‘); var index = 0; templateString.replace(regexp,function (match,value,express,offset) { source += "_p+=‘"+templateString.slice(index,offset)+"‘;"; index = offset + match.length; if(value){ source += "_p+="+value+";"; }else if(express){ source+= express+"\n"; } }); source += "_p+=‘"+templateString.slice(index,templateString.length)+"‘;\n"; source = "var _p=‘‘;\nwith(data){\n "+source +";\n}\nreturn _p"; var _render = new Function( ‘data‘, source ); return function (data) { return _render(data) } } var render = template(document.getElementById("underscore").innerHTML); console.log(render({arr:[11,22,33]})); </script> </body> </html>

  技术分享图片

 

template模板引擎原理

原文:https://www.cnblogs.com/changyaoself/p/11698279.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!