Catalogue
参考文章
最早看到这个技术是在这篇文章里 JavaScript template engine in just 20 lines。原理也分析得非常清晰。
我的实现
假设我们已经有了这样的模板字符串:
1 | var TPL = `<div><% this.name %></div> |
模板引擎的第一步,是设计中间代码。我们希望这样的字符串会被编译为这样的字符串(该字符串将用于生成函数体):
1 | `var r = []; |
实现:
1 | function compile(tpl, data) { |
测试:
1 | var res = compile(TPL, {name: 'haha', age: 23}); |