vue 组件5 VueComponent()构造函数深入理解
要点:

小案例
定义一个school组件

并注册使用

然后我们进行一个对组件的console.log,看这个组件是个什么类型

发现组件是一个构造函数

验证源码js中VueComponent被调用了

发现被调用了

1.
注意这边是构造函数
2.
既然school是一个构造函数,那么就会生成一个实例对象即new Vuecomponent(option)
还传入了配置对象

其实绿色框里面的就是配置对象

验证:
写两个组件标签就会被调用两次


不写组件标签就不给你调

3.

验证:
再定义一个hello组件
在进行注册和使用,并进行一个console.log()输出

发现这两输出的结构函数显示一样,但是它们是两个new Vuecomponent()!!!!

验证它们两是两个new Vuecomponent()
1.直接进行比较

证明这两个不一样
2.赋值
再school上附上一个值a
看hello上有没有附上

第一个有第二个没有就说明这个两个不是同一个

3.找源码
因为Vuecomponent()构造函数是Vue.extend()实现的所以直接去源码里找extend()方法

发现extend是个方法并且其中定义了一个方法最后又输出了一个函数,也就是说组件是一个函数并且是现定义的

也就是说当你写一个组件标签的时候,会调用vue.extend函数生成一个VueComponent
下图两个组件的VueComponent 不一样

4.

验证
在组件中写一个弹窗事件
弹出this信息
发现出来的是VueComponent 说明是一个组件

打开发现里面和vm很像_data 也有 set get函数也有

其实就是把数据之类的全放在了VueComponent对象里了,说白了这边就是把this的指向,从我们之前讲的vm换成了VueComponent

5.怎么体现
vm在管理vc?????????
、
验证:
非常简单只要输出vm看里面有没有Vuecomponent就行了

会发现里面有个children里面就有这两个组件

当在student上写一个子组件

标签:
相关文章
-
无相关信息
