有什么区别:
Mustache.compile()
,
Mustache.parse()
,和
Mustache.render()
在新的mustache.js版本0.5.0中,也许对于奖励积分,您可以告诉我们解析和编译之间的区别是什么。
答案 0 :(得分:17)
编辑
使用API change introduced in version 0.8.0,compile()
方法已集成到parse()
中。不再需要手动编译模板。
Mustache.parse()
从语法上解析模板并从中创建一个JavaScript函数体(一个字符串)。在此过程中,它会通知模板中遇到的任何语法错误。
Mustache.compile()
使用从成功的parse()
返回的函数体来创建实际的JavaScript函数。创建的函数放在缓存中以便重复使用。
Mustache.render()
为给定模板(由compile()
创建的模板)采用适当的函数并将其应用于实际数据。这样就可以在屏幕上显示结果。
答案 1 :(得分:2)
只需提示Mustache.parse(template)
是可选的,可加快模板的未来使用。当您想要将模板与一组(大)数据一起使用时,这非常有用。如果不是这种情况,那么调用生成最终结果的Mustache.render()
就足够了。
答案 2 :(得分:1)
一些额外的内容:
如果您使用自定义分隔符(而不是{{
和}}
),则可以在使用自定义分隔符作为参数调用Mustache.parse
之前使用Mustache.render
。
示例:
var template = "<h1>Hello {{$name$}}</h1>"
var customTags = [ '{{$', '$}}' ];
Mustache.parse(template, cutomTags);
var result = Mustache.render(template, { name: "John" };
console.log(result);
将结果输入:
Hello John