Vue中的vm和VueComponent的实例对象
关于vm和vc,vm为Vue的实例对象,vc为VueComponent的是对象。
一、vm
1、Vue的实例对象,以后简称vm。
(1) vm的隐式原型属性指向Vue的原型对象。
(2) VueComponent的原型对象的隐式原型属性指向Vue的原型对象。
好像不太好描述,只可意会不可言传,atguigu张天禹老师牛批!
二、vc
1、组件本质:
组件其实是一个名为VueComponent的构造函数,且不是程序员定义的,是Vue.extend自动生成的。
每写一个组件Vue会通过Vue.extend生成一个全新的VueComponent,写一个school组件,新生成一个VueComponent,当我们再写一个student组件时,又会重新生成一个全新的VueComponent。注意:这里只是针对于非单文件组件。
2、Vue解析时会帮我们创建school组件的实例对象
我们只需要写<school></school>
,,
即Vue帮我们执行的:new VueComponent(options)。
3、特别注意:
每次调用Vue.extend,返回的都是一个全新的VueComponent!!!!
//定义school组件
const school = Vue.extend({name: 'school',data(){name:'ycu',address:'学府路576号',}, methods:{}
})
在非单文件组件中,组件可以定义多个
4、关于this指向
1.组件配置中:
data函数、methods中的函数、watch中的函数、computed中的函数 它们的this均是VueComponent实例对象(也就是天禹老师课堂上的vc,也可称之为组件实例对象)。
(1):VueComponent的实例对象,我们暂且记为vc。
(2):Vue的实例对象 vm
2.new Vue(options)配置中:
data函数、methods中的函数、watch中的函数、computed中的函数 它们的this均是Vue实例对象。
5、vc 与 vm 的区别:
vm和vc在某种程度上确实有很多相像之处,但又有着本质的区别,vc差不多像是vm的小弟,可以理解为类似生活中的一对双胞胎,一个稍微早出生几分钟的是大哥,也就是vm,另外一个就是小弟vc,虽然会很像,但是还是有区别的。
总体上来说,vm身上有的,vc基本也有。
data函数、methods中的函数、watch中的函数、computed中的函数在vm和vc里边都有,生命周期也都是一样的,以及相同的数据代理模式。
vc有的vm都有,vm可以通过el决定为哪一个容器服务,但是vc是没有 el 的!且 vc 的data要写成函数式,在vm中的data写成对象或者函数都行
6、Vue和VueComponent的内置关系
VueComponent.prototype.proto === Vue.prototype (这里的proto前后都是有__的,编辑器误以为是加粗的标识了)
即构造函数的显示原型属性 === 实例对象的隐式原型属性
先摆上一张天禹老师的d图
Vue中的vm和VueComponent的实例对象相关推荐
- vue 给标签添加data属性_在Vue中获取自定义属性方法:data-id的实例
获取自定义属性的方法: 第一步:首先在标签上绑定上@click="getDateId(item.id)",并将属性值传到绑定的事件里面 第二步:在标签上继续绑定:date-id = ...
- “约见”面试官系列之常见面试题第二十八篇之vue中的混合(minix)实例理解
minix 是个什么东西, 就是混合,把你混合给我 浅显表述就是 你说 : '我叫李四', 我说 : '我叫张三', 然后把你 混合给我, 就成了 我说 : '我叫张三我叫李四', 所有解说都在例子里 ...
- 原型共享数据 原型简单语法 原型中方法是可以相互访问 实例对象属性方法层层搜索
利用原型共享数据 <!DOCTYPE html> <html lang="en"> <head><meta charset="U ...
- vue中细枝末节的知识点总结
JS 文件中访问vuex,操控vuex 由于在main.js文件中,vuex是挂载在window.vm上的 所以vue项目中的js文件访问vuex的写法 window.vm.$store.state. ...
- 【Vue】class style:Vue中的两种样式处理方法
class属性 1.基本的class使用 <!DOCTYPE html> <html lang="en"> <head><meta cha ...
- vue中$router以及$route的使用
路由基本概念 route,它是一条路由. { path: '/home', component: Home } routes,是一组路由. const routes = [{ path: '/home ...
- javascript中实例对象和构造函数关系、原型语法、原型链、call实现继承、apply调用函数、bind拷贝函数、拷贝继承、class类、super、严格模式、高阶函数、闭包、递归、es6简介
实例对象和构造函数的关系及原型: 实例对象是通过构造函数创建出来的,实例对象的构造器constructor就是指向构造函数的:每个实例对象中的同一方法的指向是各不相同的,但是其属性值相同的属性可以相同 ...
- python-面向对向-实例方法的继承-多继承父类中的super与子类实例对象的关系
初始代码 class Father:def run(self):print('father de run')def one(self):print('father de one')class Moth ...
- AbstractBeanFactory 生产Bean 实例对象
AbstractBeanFactory 类中生产Bean 实例对象的主要源码如下: //Bean工厂生产Bean实例对象 protected Object getObjectFromFactoryBe ...
最新文章
- Java学习总结:54(集合输出)
- LeetCode Number of Digit One(计算1的个数)
- VC++文件编程操作实例
- 分页原理+软件架构师
- [FPGA]基于FPGA的数字跑表
- jQuery全屏滚动插件fullPage.js
- python测试系列教程 —— 调试日志logging
- 什么是数据治理的方法论
- zabbix修改和查看登录密码
- java.lang.ClassNotFoundException: net.sf.json.JSONObject
- python 前端开发_python和前端开发怎么抉择?
- ESXI7.0与6.7官网下载地址
- 12个思维导图工具,像数据科学家一样结构化地思考
- IDEA 2019 修改中文字体
- PHP如何启动scrapy,python,_新手Scrapy爬虫运行问题,python - phpStudy
- 在JavaScript中没有二维数组的概念
- xcode真机调试--添加iOS最新版本-添加最新的 DeveloperDiskImage
- 固定定位的盒子使用margin:0 auto;是无法水平居中的,此时该怎么操作呢?
- FPM五:拆解前面的四——OVP做查询和结果
- JavaScript赋值运算符,比较运算符,逻辑运算符