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

Logo

前往低代码交流专区

更多推荐