采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师好,我在main.js中new Vue写了render:(h) => h(App),在App.vue文件export default的对象中只写了data,但是在调用到vm.$createElement函数的时候为什么App对象除了data外还有beforeCreate、beforeDestroy、render、_Ctor等这些属性,别的这些属性是在什么时候添加进去的呢,我一步步调试没有进去这个过程。
在 Vue 的 init 的时候有 mergeOptions 的时机,会把传入的配置和 Vue.options 做合并,另外 Vue.extend 内部也有 mergeOptions 的时机,你可以在这俩个地方打断点,调试就知道了
老师我看了mergeOptions还是没有搞明白,好像没有合并这个啊,就比如我在main.js中只写 import App from './App' console.log(App) 这两句,它打印出来就有这些选项,我在网上看又有说是vue-loader处理的单文件组件,哪个才是正确的呢。
vue-loader 处理也是一个原因,比如会把模板转成 render 函数,并添加一些额外属性,另外你说的 _Ctor 属性就是在 extend 的时候通过 mergeOptions 合并进去的。
非常感谢!
登录后可查看更多问答,登录/注册
全方位讲解 Vue.js 源码,进阶高级工程师
3.1k 4
1.6k 20
1.3k 14
1.3k 12
2.3k 12