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

vue 父组建获取子组建方法为获得_vue实现思想分享和探讨

vue主要的几个函数

observer

watcher

Dep

compile

基本调用流程

b1c2adfc94340bfe892de80711f15545.png

new Vue()都做了什么

function 

1,option 就是我们传过来的参数 比如下面newVue里面这部分

var 

2 判断当前运行环境 以及是否继承自Vue

3 初始化函数 _init() 函数

Vue

上面对init函数的执行逻辑做了简单的备注,下面我们来仔细探讨每个函数的具体内部结构

resolveConstructorOptions() 这个函数是解析构造函数参数的作用

export 

从上面的代码可以看出解析参数分为两种情况

1 当调用Vue.extend时执行 if(Ctor.super){}中的代码块,首先,递归获取到父类中的options

和子类的options进行比较,如果如果子类和父类不一致,更新子类中的options,然后检测子类的option是否发生变化,如果有的变化,返回变化的options,并且将父类中的option和子类中的option进行合并。

2 当调用 new Vue()时,直接返回options

初始化属性

上次大概聊了一下参数合并相关的代码逻辑,今天我们聊一聊初始化属性的逻辑

initLifecycle(vm) :参数合并完成之后会执行左边的这个方法,参数是一个vue对象,源码如下

export 

通过探讨以上代码,我们发现,这个方法就干了一件事,找出组建之间的依赖关系,也就是实列之间的依赖关系,比如,谁是谁的子级,谁是谁的父级,然后将这个关系挂载到vue这个根实列上面。

抽象组建或者抽象类

在我们平常写的组建当中,或多或少都需要渲染一些dom,有一些直观上的表现,比如一个弹框组建等等。。,所谓抽象组建是不渲染任何dom的,只是作为一种处理逻辑的方法或者一种数据结构,比如 vue中的keep-alive 组建,或者 transition组建

相关文章:

  • office2013安装程序找不到_office2007提示“错误1706,安装程序找不到所需文件
  • Scrapy学习篇(二)之常用命令行工具
  • uefi+guid分区与legacy+mbr分区_硬盘分区表格式GUID和MBR知识普及
  • excel处置4000行数据卡_数十万数据Excel数据不好处理怎么办?
  • 【学习随笔】关于php.ini的各项说明-1
  • layui获取input信息_爬虫实战:运用requests库和正则表达式爬取淘宝商品信息。
  • 分支结构if
  • opencv3和qt5计算机视觉应用开发pdf_计算机视觉方向简介 | 用深度学习进行表格提取...
  • Runtime 类
  • vue element tree 后台 数据转换_mallcloud商城vue
  • excel统计行数_WPS| 12个简单的Excel技巧,却能让造价人变得如此逆天!
  • RandomAccess接口
  • python用input输入list_python怎么用input函数输入一个列表
  • sublime text 2 卸载与重装
  • 〔开发系列〕一次关于小程序开发的深度总结
  • C++回声服务器_9-epoll边缘触发模式版本服务器
  • gcc介绍及安装
  • HTML5新特性总结
  • input实现文字超出省略号功能
  • node-sass 安装卡在 node scripts/install.js 解决办法
  • node和express搭建代理服务器(源码)
  • Python进阶细节
  • vue-cli3搭建项目
  • 从伪并行的 Python 多线程说起
  • 构建二叉树进行数值数组的去重及优化
  • 手写双向链表LinkedList的几个常用功能
  • 一、python与pycharm的安装
  • 用Visual Studio开发以太坊智能合约
  • 智能合约开发环境搭建及Hello World合约
  • 阿里云服务器如何修改远程端口?
  • ​​​​​​​​​​​​​​汽车网络信息安全分析方法论
  • (4)通过调用hadoop的java api实现本地文件上传到hadoop文件系统上
  • (Note)C++中的继承方式
  • (Oracle)SQL优化技巧(一):分页查询
  • (二)Linux——Linux常用指令
  • (二十三)Flask之高频面试点
  • (附源码)springboot学生选课系统 毕业设计 612555
  • (六)库存超卖案例实战——使用mysql分布式锁解决“超卖”问题
  • (欧拉)openEuler系统添加网卡文件配置流程、(欧拉)openEuler系统手动配置ipv6地址流程、(欧拉)openEuler系统网络管理说明
  • (十一)手动添加用户和文件的特殊权限
  • .NET Core WebAPI中使用Log4net 日志级别分类并记录到数据库
  • .net core开源商城系统源码,支持可视化布局小程序
  • .netcore如何运行环境安装到Linux服务器
  • .NET中 MVC 工厂模式浅析
  • .pyc文件是什么?
  • @EnableWebMvc介绍和使用详细demo
  • @PreAuthorize注解
  • @Transaction注解失效的几种场景(附有示例代码)
  • []FET-430SIM508 研究日志 11.3.31
  • [20150707]外部表与rowid.txt
  • [cocos2d-x]关于CC_CALLBACK
  • [docker] Docker的数据卷、数据卷容器,容器互联
  • [elastic 8.x]java客户端连接elasticsearch与操作索引与文档
  • [excel与dict] python 读取excel内容并放入字典、将字典内容写入 excel文件