data.call(vm.vm) 把组件实例传给 data 函数的疑问

来源:2-2 new Vue 发生了什么

XF西风

2020-05-17

黄老师,有个疑问:
data.call(vm, vm) 把组件实例作为参数传给 data 函数,我试了一下在 data 里面调用 vm:
图片描述

打印出来的 vm 是 vue 的实例,也有 message 参数:
图片描述

console.log(vm.message) 为啥是undefined ??我是在 App.vue 组件写的。
图片描述

写回答

2回答

ustbhuangyi

2020-05-17

//img.mukewang.com/szimg/5ec13ddc09aeb28016360276.jpg
因为在 data 函数执行的时候,vm._data 还没有值,另外也没有做 proxy,也就是没有把 vm._data.xxx 代理到 vm.xxx

1
3
慕粉4283821
回复
归来仍是少年呀
这里建议打断点调试, 其实data函数内拿到的vm 还没有_data属性, chrome浏览器会输出 这个引用类型最终的值
2020-12-16
共3条回复

美丽的老周

2020-05-27

请问this.value在什么时候会打印出'Hello World - value'?

0
1
ustbhuangyi
data 初始化后都可以
2020-05-27
共1条回复

Vue.js 源码深入解析 深入理解Vue实现原理

全方位讲解 Vue.js 源码,进阶高级工程师

4984 学习 · 1037 问题

查看课程