Vue中vc和vm的区别

2.png 如图所示,是vm对象和vc对象的关系图
1,什么是vm对象
vue是一套用于构建用户界面的渐进式框架。它的底层原理是通过new Vue构造函数,生成实例化对象。初始化,给其设置el/mount挂载点等实现页面渲染的。vm对象就是Vue构造函数new出来的实例化对象,也可称之为vm实例

2,什么是vc对象
Vue构造函数的底层工作原理中,有一个“子构造函数”:VueComponent组件构造函数。vc对象就是VueComponent构造函数new出来的实例化对象,也可称之为vc实例。

3.vc对象和vm对象的关系
它们之间是继承关系,vc对象继承vm对象。vc对象的原型就是vm对象

4.实例对象都是构造函数new出来的,所以我们要知道new的底层工作原理
(1). 创建一个空的简单 JavaScript 对象(即 {} );*
(2). 为步骤 1 新创建的对象添加属性 __proto__ ,将该属性链接至构造函数的原型对象;*
(3). 将步骤 1 新创建的对象作为 this 的上下文;*
(4). 如果该函数没有返回对象,则返回 this。*

1.png 6.如图是组件完整的原型链
7.this的指向
知道了new的底层原理,那么this的指向就非常清楚了。如上图 我们项目中的.vue文件内的this,指向的就是VueComponent构造函数的实例化对象即vc实例),我们可以通过this(即vc对象)的——proto——属性,找到它的VueComponent构造函数的原型对象prototyope),即vm对象

又可以通过vm对象——proto——属性,找到它的Vue构造函数的原型对象prototyope)。直到找到JavaScript顶级的对象(Object构造函数的原型对象),没有就到了尽头null。


2.png 如图所示,是vm对象和vc对象的关系图
1,什么是vm对象
vue是一套用于构建用户界面的渐进式框架。它的底层原理是通过new Vue构造函数,生成实例化对象。初始化,给其设置el/mount挂载点等实现页面渲染的。vm对象就是Vue构造函数new出来的实例化对象,也可称之为vm实例

2,什么是vc对象
Vue构造函数的底层工作原理中,有一个“子构造函数”:VueComponent组件构造函数。vc对象就是VueComponent构造函数new出来的实例化对象,也可称之为vc实例。

3.vc对象和vm对象的关系
它们之间是继承关系,vc对象继承vm对象。vc对象的原型就是vm对象

4.实例对象都是构造函数new出来的,所以我们要知道new的底层工作原理
(1). 创建一个空的简单 JavaScript 对象(即 {} );*
(2). 为步骤 1 新创建的对象添加属性 __proto__ ,将该属性链接至构造函数的原型对象;*
(3). 将步骤 1 新创建的对象作为 this 的上下文;*
(4). 如果该函数没有返回对象,则返回 this。*


1.png 6.如图是组件完整的原型链
7.this的指向
知道了new的底层原理,那么this的指向就非常清楚了。如上图 我们项目中的.vue文件内的this,指向的就是VueComponent构造函数的实例化对象即vc实例),我们可以通过this(即vc对象)的——proto——属性,找到它的VueComponent构造函数的原型对象prototyope),即vm对象


又可以通过vm对象——proto——属性,找到它的Vue构造函数的原型对象prototyope)。直到找到JavaScript顶级的对象(Object构造函数的原型对象),没有就到了尽头null。

2.png 如图所示,是vm对象和vc对象的关系图
1,什么是vm对象
vue是一套用于构建用户界面的渐进式框架。它的底层原理是通过new Vue构造函数,生成实例化对象。初始化,给其设置el/mount挂载点等实现页面渲染的。vm对象就是Vue构造函数new出来的实例化对象,也可称之为vm实例

2,什么是vc对象
Vue构造函数的底层工作原理中,有一个“子构造函数”:VueComponent组件构造函数。vc对象就是VueComponent构造函数new出来的实例化对象,也可称之为vc实例。

3.vc对象和vm对象的关系
它们之间是继承关系,vc对象继承vm对象。vc对象的原型就是vm对象。

4.实例对象都是构造函数new出来的,所以我们要知道new的底层工作原理
(1). 创建一个空的简单 JavaScript 对象(即 {} );*
(2). 为步骤 1 新创建的对象添加属性 proto ,将该属性链接至构造函数的原型对象;*
(3). 将步骤 1 新创建的对象作为 this 的上下文;*
(4). 如果该函数没有返回对象,则返回 this。*

1.png 6.如图是组件完整的原型链
7.this的指向
知道了new的底层原理,那么this的指向就非常清楚了。如上图 我们项目中的.vue文件内的this,指向的就是VueComponent构造函数的实例化对象(即vc实例),我们可以通过this(即vc对象)的——proto——属性,找到它的VueComponent构造函数的原型对象(prototyope),即vm对象。

又可以通过vm对象的——proto——属性,找到它的Vue构造函数的原型对象(prototyope)。直到找到JavaScript顶级的对象(Object构造函数的原型对象),没有就到了尽头null。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值