什么是基于DOM的模板?我开始学习AngularJS,我多次看到这个术语。基于DOM的模板有哪些优点?寻找一些东西,比如基于字符串的模板之间的差异,基于DOM的模板如何更好,等等。
jobtbby31#
基于DOM的模板语言依赖于DOM树来识别模板指令。基于DOM的模板将遍历DOM树以发现模板指令,然后操作DOM树以生成最终的DOM树,然后在浏览器中呈现该DOM树。基于DOM的模板语言只能在浏览器中工作,除非在服务器上使用虚拟DOM。基于DOM的模板语言天生就慢得多,因为模板不能被预编译,因为输入是要被操作的DOM树,输出是被操作的DOM树。相比之下,基于文本和基于HTML的模板可以预编译成JavaScript函数,该函数是编译器分析模板以找到所有有趣的动态部分的结果。基于DOM的模板语言示例:AngularJS、Knockout、Weld从帕特里克Steele-Idem关于JavaScript模板的链接Landscape http://psteeleidem.com/the-javascript-templating-landscape/将帮助您了解有关不同JavaScript模板的更多细节。
xfb7svmp2#
目前,在AngularJs中,你可以在标签中指定模板,然后标记它们,以便在需要的地方使用,或者你可以在外部html文件中创建模板,然后使用ng-include在需要的地方包含该模板。在最近的一次演示中,angular团队表示,angular的未来将包括shadow DOM,以及直接在页面中指定自定义HTML标记和逻辑的能力,而无需为浏览器构建一个指令来理解它是什么。
2条答案
按热度按时间jobtbby31#
基于DOM的模板语言依赖于DOM树来识别模板指令。基于DOM的模板将遍历DOM树以发现模板指令,然后操作DOM树以生成最终的DOM树,然后在浏览器中呈现该DOM树。基于DOM的模板语言只能在浏览器中工作,除非在服务器上使用虚拟DOM。基于DOM的模板语言天生就慢得多,因为模板不能被预编译,因为输入是要被操作的DOM树,输出是被操作的DOM树。相比之下,基于文本和基于HTML的模板可以预编译成JavaScript函数,该函数是编译器分析模板以找到所有有趣的动态部分的结果。
基于DOM的模板语言示例:
AngularJS、Knockout、Weld
从帕特里克Steele-Idem关于JavaScript模板的链接Landscape http://psteeleidem.com/the-javascript-templating-landscape/将帮助您了解有关不同JavaScript模板的更多细节。
xfb7svmp2#
目前,在AngularJs中,你可以在标签中指定模板,然后标记它们,以便在需要的地方使用,或者你可以在外部html文件中创建模板,然后使用ng-include在需要的地方包含该模板。
在最近的一次演示中,angular团队表示,angular的未来将包括shadow DOM,以及直接在页面中指定自定义HTML标记和逻辑的能力,而无需为浏览器构建一个指令来理解它是什么。