二十九. vue的vm和vc的一个重要的内置关系
1. 这个重要的内置关系是什么?
VueComponent.prototype.__proto__ === Vue.prototype
这有张图是尚硅谷课程上的,非常好,如果失效再去上面找!
仔细看上图,其实是个vm和vc对象的内部结构,是个嵌套形式。仔细看!!!
prototype
:显示原型属性
__proto__
:隐式原型属性
显示原型属性和隐式原型属性都指向原型对象
看这些原型属性(prototype
和__proto__
)不断的嵌套,很像java中class的继承,就像是super方法(好像就是。。没有具体研究过)
具体prototype
和__proto__
到底是什么意思?这是js中的内容,我的另一篇文章有介绍!
2. 为什么要有这个关系?
让组件实例对象(vc)可以访问到 Vue原型上的属性、方法。
3. 实战举例:
(1)全局事件总线Vue.prototype.$bus = this; //this是vm
(2)将api接口统一暴露,然后挂载到vm原型对象上,其他组件就可以无需导入,直接调用。
import API from '@/api'
Vue.prototype.$API = API
4. 拓展:vm和vc
https://blog.csdn.net/HSH541/article/details/124342333
树若逝花若殇: 博主的文章让我对这个主题有了全新的认识,细节描写非常到位,让我感受到了博主的深厚功底。期待博主未来能够持续分享更多好文,同时也希望能够得到博主的指导,共同进步。非常感谢博主的分享和支持 互评互评
shi'q: 浏览器中试了下‘举例’代码, xiaoming.__proto__也能打印出来呀,和Mytest.prototype打印结果一样
这不比博人传燃?: 看完了,也忘完了
爱吃玉米的螃蟹: 可以兄弟,你都看完了吗?
Silver Vortex: 燃起来了