请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

render函数传入的是组件对象的问题。

老师好,我在main.js中new Vue写了render:(h) => h(App),在App.vue文件export default的对象中只写了data,但是在调用到vm.$createElement函数的时候为什么App对象除了data外还有beforeCreate、beforeDestroy、render、_Ctor等这些属性,别的这些属性是在什么时候添加进去的呢,我一步步调试没有进去这个过程。

正在回答

1回答

在 Vue 的 init 的时候有 mergeOptions 的时机,会把传入的配置和 Vue.options 做合并,另外 Vue.extend 内部也有 mergeOptions 的时机,你可以在这俩个地方打断点,调试就知道了

0 回复 有任何疑惑可以回复我~
  • 提问者 慕姐2223705 #1
    老师我看了mergeOptions还是没有搞明白,好像没有合并这个啊,就比如我在main.js中只写 import App from './App'  console.log(App) 这两句,它打印出来就有这些选项,我在网上看又有说是vue-loader处理的单文件组件,哪个才是正确的呢。
    回复 有任何疑惑可以回复我~ 2019-04-28 22:10:30
  • ustbhuangyi 回复 提问者 慕姐2223705 #2
    vue-loader 处理也是一个原因,比如会把模板转成 render 函数,并添加一些额外属性,另外你说的 _Ctor 属性就是在 extend 的时候通过 mergeOptions 合并进去的。
    回复 有任何疑惑可以回复我~ 2019-04-28 22:46:01
  • 提问者 慕姐2223705 #3
    非常感谢!
    回复 有任何疑惑可以回复我~ 2019-04-29 00:16:31
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信