十行代码实现的一个js模板引擎
心血来潮,来写一个模板引擎吧!
功能就不多说了
实现思路
从最简单的开始吧
假设一个模板长这样
<h1><% var world = 'world!'; %> hello <%= world %></h1>
模板转化后应该到这样的:
// 假设输出的结果存放在变量p中
p += '<h1>';
var world = 'world!';
p += ' hello ';
p += world;
p += '</h1>';
总结一下这个过程,其实就只有三条规则:
%>...<% 转换为 %>p += '...';<%, 起始和结束同此, 将内容直接作为输出
<%...%> 转换为 ...;, 逻辑处理, 直接执行
<%=...%> 转换为 p += (...);, 将运算结果作为输出
实现
实现就很简单了把上面的规则写成代码,