当前位置: 首页 > news >正文

Vue基础(24)_VueCompinent构造函数、Vue实例对象与组件实例对象

分析上一节代码中的school组件:

该组件是一个名为VueCompinent的构造函数。

截取部分vue.js源码,分析Vue.extend:

        // 定义一个名为VueComponent的构造函数对象Sub,往Sub对象调用_init(options)方法,参数为配置项:optionsvar Sub = function VueComponent(options) {this._init(options);};// 定义了一个Vue.extend函数,参数:extendOptions,返回值为构造函数对象Sub。Vue.extend = function (extendOptions) {...var Sub = function VueComponent(options) {this._init(options);};...return Sub;};

关于VueComponent:

1、school组件本质是一个名为VueComponent的构造函数,通过Vue.extend方法生成的。


2、我们只需要写<school/>或<school></school>,Vue解析时会帮我们创建school组件的实例对象,即Vue帮我们执行的:new VueComponent(options)


3、特别注意:每次调用Vue.extend,返回的都是一个全新的VueCompinent!!!(VueComponent构造函数所创建的新对象,同属于VueComponent一类,即便配置项一样,新对象之间内存分配的地址不同,对象也互不相同)


4、关于this指向:
(1).组件配置中:
data、methods、watch、computed中的函数,它们的this指向都是【VueCompinent实例对象】
(1).new Vue(options)配置中:
data、methods、watch、computed中的函数,它们的this指向都是【Vue实例对象】


5、VueCompinent的实例对象,以后简称vc(也可称之为:组件实例对象)。Vue的实例对象,以后简称vm

Vue实例对象【vm】 VS 组件实例对象【vc】

1、【官方解释】组件是可复用的Vue实例,它们与new Vue接受相同的选项,例如 data、computed、watch、methods 以及生命周期钩子等。仅有的例外是像 el 这样根实例特有的选项

-------------------------------------------------------------------------------------------------------------------------

简而言之:组件实例对象【vm】和Vue实例对象【vc】很像,【vc】有的功能【vm】都有,但【vc】没有el选项(由【vm】统一管理el)。

2、【官方解释】一个组件的data选项必须是一个函数,因此每个实例可以维护一份被遣返对象的独立的拷贝

-------------------------------------------------------------------------------------------------------------------------

简而言之:关于data选项,【vm】可以使用函数或对象形式创建,但【vc】必须使用函数形式创建。

http://www.lryc.cn/news/599879.html

相关文章:

  • 【循环语句,求100内能被6整除的和】
  • 智能制造——解读39页MOM数字化工厂平台解决方案【附全文阅读】
  • Android 10.0 sts CtsSecurityBulletinHostTestCases的相关异常分析
  • ARPG开发流程第一章——方法合集
  • 负载均衡:提升业务性能的关键技术
  • 后端项目中大量 SQL 执行的性能优化
  • ptmalloc(glibc-2.12.1)源码解析2
  • 基于米尔瑞芯微RK3576开发板部署运行TinyMaix:超轻量级推理框架
  • Shopify Section Rendering API
  • 小白如何认识并处理Java异常?
  • 【嵌入式汇编基础】-ARM架构基础(二)
  • 从0到1:初创企业适合做企业架构吗?TOGAF 能带来什么?
  • 小架构step系列25:错误码
  • Haproxy七层代理及配置
  • 数据结构2-集合类ArrayList与洗牌算法
  • 在Word和WPS文字中添加的拼音放到文字右边
  • JS与Go:编程语言双星的碰撞与共生
  • 初识opencv04——图像预处理3
  • ModelWhale+数据分析 消费者行为数据分析实战
  • 判断子序列-leetcode
  • 广州 VR 安全用电技术:工作原理、特性及优势探析​
  • CTF-Web题解:“require_once(‘flag.php‘); assert(“$i == $u“);”
  • Linux系统基本配置以及认识文件作用
  • 双非上岸985!专业课140分经验!信号与系统考研专业课140+上岸中南大学,通信考研小马哥
  • 20分钟学会TypeScript
  • 本地内网IP映射到公网访问如何实现?内网端口映射外网工具有哪些?
  • VUE2 学习笔记6 vue数据监测原理
  • 局域网 IP地址
  • Linux tcpdump 抓取udp 报文
  • 开源语音TTS与ASR大模型选型指南(2025最新版)(疯聊AI提供)