组件构造函数都继承 Vue 么

来源:3-9 组件注册(上)

六一888

2020-01-03

无论是全局组件还是局部组件,都是默认为 Vue.extent 生成的组件构造器吧,在 createComponent 视频中,老师讲到由于 Sub.extend 也继承了 Vue.extend 所以可以让 B 组件构造器继承自 A 组件构造器,所以需要可以用 vue 官网的例子来这样做:

var CompA = { ... }

// 在没有调用 `Vue.extend` 时候继承 CompA
var CompB = {
  extends: CompA,
  ...
}

即在没有调用 Vue.extend 时默认为继承 Vue,而如果手动添加:extend: CompA,那么就会继承 CompA

写回答

1回答

ustbhuangyi

2020-01-03

组件 options 中的 extends 和 Vue.extend 是 2 回事情,extends 和 mixins 作用是很类似的。在 createComponent 过程中,会执行 Vue.extend(),在 mergeOptions 的过程中,才会处理 extends。

1
2
ustbhuangyi
回复
六一888
可以试试 const B = Vue.extend(CompA) const C = B.extend(CompA)
2020-01-03
共2条回复

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

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

4984 学习 · 1037 问题

查看课程