关于一些Vue的文章。(2)
来源:互联网 发布:js精确到小数点后两位 编辑:程序博客网 时间:2024/06/05 11:30
原文链接我的blog,欢迎STAR。
这次想要分享的一篇文章是:从一个奇怪的错误出发理解Vue的基本概念。
这篇文章以Vue的两种构建方式做为切入点,深入探讨了Vue的基本概念,编译以及挂载的相关过程。
在这篇文章里学到很多以前忽略的地方:
- 开始学习vue的时候,由于有一些react基础,对组件的形式有些了解,就直接从vue-cli开始了,忽略了vue的两种构建模式,既是使用默认的运行时构建。
从vue官网里,可以很清楚的了解,vue存在两种构建模式,运行构建和独立构建。他们的区别在于独立构建包含模板编译,而运行构建不含模板编译。
那么问题来了,在项目那么多组件里,每个组件都有template选项,既然运行时构建不含模板编译, 那是怎么项目是怎么运行起来,难道我是使用了假的vue??
来看看官网的说明:
运行时构建不含模板编译器,因此不支持
template
选项,只能用render选项,但即使使用运行时构建,在单文件组件中也依然可以写模板,因为单文件组件的模板在构建时预编译为render函数。
瞬间明白了,原来是render函数,一个考验JavaScript编程能力的函数,比template更接近编译器。
那么问题又来了,render函数与template有什么关系?
- render 函数、 template 属性以及 el属性。
分享的这篇文章有一点总结的很好:
当Vue选项对象中有
render
渲染函数时,Vue构造函数将直接使用渲染函数渲染DOM树,当选项对象中没有render渲染函数时,Vue构造函数首先通过将template
模板生成render
函数,然后再渲染DOM树,而当选项对象中既没有render
渲染函数,也没有template
模板时,会通过el
属性获取挂载元素的outerHTML
来作为模板,并编译生成渲染函数。
似曾相识的几句话……
Vue官网API搜索template:
这里最后一句话,如果Vue选项中包含render
函数,template
选项将被忽略,也就是说在渲染DOM树时render
函数的优先级 大于 template
选项。
意思也是在进行DOM渲染的时候,render
函数优先级最高,template
和el
次之。
来看 el
:
这里有一个小知识点被忽略: 在实例挂载之后,元素可以用vm.$el访问(脑补会用到的场景中。。。)
最后一条信息里:
如果
render
函数和template属性都不存在,挂在DOM元素的HTML会被提取出来用作模板,此时,必须使用Runtime + Compiler构建的Vue库。
也就是说: 在进行DOM树渲染时,render渲染函数的优先级最高,template次之且需要编译成渲染函数,在前两者均不存在时,挂载DOM元素的outerHTML会被提取出来用作模板。
当然,构建Vue实例时,可以不含有render
, template
, el
三者中任何一个。
- 关于一些Vue的文章。(2)
- 关于一些Vue的文章。(1)
- 关于一些Vue的文章。(3)
- 关于一些Vue的文章。(5)
- 关于一些Vue的文章。(5)
- 关于一些Vue的文章。(6)
- 关于一些Vue的文章。(7)
- 关于一些Vue的文章。(5)
- 关于Vue.js的一些总结(2)
- 一些关于vue的心得
- 关于vue的一些总结
- 一些关于数据库的文章
- 一些关于VC的文章
- 关于CoreDump的一些文章
- 一些关于Launcher的文章
- 关于C++的一些文章
- 关于QT的一些文章
- 关于mockito的一些文章
- OpenCV 遇到的常见问题
- 1129. Recommendation System (25)
- hive alter table (删除某一列, 增加列)语句
- 51 Nod 1430 奇偶游戏(博弈)
- 使用DDMS查看data下数据、ADB环境变量的配置
- 关于一些Vue的文章。(2)
- Edittext和软键盘的关系应用
- java笔记JVM1
- LeetCode513. Find Bottom Left Tree Value题解
- malloc的开辟----重修订
- MCU—直流电机
- Callable与Future
- LeetCode 26. Remove Duplicates from Sorted Array
- Oracle代码大全.从入门到熟练