JS模板编译如何实现


这篇文章主要介绍了JS模板编译如何实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JS模板编译如何实现文章都会有所收获,下面我们一起来看看吧。编译是一种格式变成另一种格式的过程。编译会导致好的结果,比如书写简单的代码,编译出来复杂的代码;或者提高代码的使用性能。这里只聊聊免费云主机域名模板编译。写一个最简单的模板Hello,{{name}}!这个模板用数据{name: "world"}渲染后的结果是:Hello,world!解决方法:最简单的方案,正则替换就行了Hello,I’m{{name}}!{{age}}yearsold!Hello,I’mhayes!18yearsold!缺点很明显,除了正则替换字段,其他啥都干不了,来看看简单的嵌套需求:模板:Hello,I’m{{user.name}}!{{user.age}}yearsold!渲染数据;现在再使用上面的方法,就失效了。还用正则的话,会很难做。因为需要做语法/词法分析,来看看大括号内写的是什么了。其实对于上述的模板,也可以使用如下方式来写:Hello,I’m${data.name}!${data.age}yearsold!好处:只需一次编译,之后再使用就只需要直接填充数据即可。而且也方便支持data.user.name这种形式。工具使用new Function生成函数生成一个函数,传入xy,执行return x + y来获得求和的功能打印fn可以看到输出的内容如下:传入模板字符串,通过new Function方式返回一个新函数。新函数接收一个obj对象把{{xxx}}找出来,替换为obj.xxxHello,I’m{{user.name}}!{{user.age}}yearsold!此时,函数打印如下:Hello,I’mobj.user.name!obj.user.ageyearsold!我们需要把字符串中的obj.user.nameobj.user.age变成动态的。修改一下正则Hello,I’m{{user.name}}!{{user.age}}yearsold!再来看看函数的打印:Hello,I’m”+obj.user.name+”!”+obj.user.age+”yearsold!最终代码:Hello,I’m{{user.name}}!{{user.age}}yearsold!Hello,I’mhayes!18yearsold!渲染结果:Hello,I’mhayes!18yearsold!关于“JS模板编译如何实现”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“JS模板编译如何实现”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注百云主机行业资讯频道。

相关推荐: web前端架构指的是什么

这篇文章主要讲解了“web前端架构指的是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“web前端架构指的是什么”吧! web前端架构是一系列工具和流程的集合,旨在提升前端代码的质量,并实现高效可持续的工作流…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 03/21 22:52
下一篇 03/21 22:52

相关推荐