首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
学习准备
变化侦测
Object的变化侦测
Array的变化侦测
Vue中的虚拟DOM
Vue中的Dom-Diff
更新子节点
优化更新子节点
模板编译基础
模板解析(整体流程)
模板解析(HTML解析器)
模板解析(文本解析器)
优化阶段
代码生成阶段
生命周期概述
初始化阶段(new Vue)
初始化阶段(initLifecycle)
初始化阶段(initEvents)
初始化阶段(initInjections)
初始化阶段(initState)
模板编译阶段
挂载阶段
销毁阶段
数据相关的方法
事件相关的方法
生命周期相关的方法
全局API分析
过滤器用法
过滤器工作原理
解析过滤器
自定义指令
keep-alive
当前位置:
首页>>
技术小册>>
Vue源码完全解析
小册名称:Vue源码完全解析
## 1. 前言 众所周知,`Vue`最大的特点之一就是数据驱动视图,那么什么是数据驱动视图呢?在这里,我们可以把数据理解为状态,而视图就是用户可直观看到页面。页面不可能是一成不变的,它应该是动态变化的,而它的变化也不应该是无迹可寻的,它或者是由用户操作引起的,亦或者是由后端数据变化引起的,不管它是因为什么引起的,我们统称为它的状态变了,它由前一个状态变到了后一个状态,页面也就应该随之而变化,所以我们就可以得到如下一个公式: <font color="red">**UI = render(state)**</font> 上述公式中:状态`state`是输入,页面`UI`输出,状态输入一旦变化了,页面输出也随之而变化。我们把这种特性称之为数据驱动视图。 OK,有了基本概念以后,我们再把上述公式拆成三部分:`state`、`render()`以及`UI`。我们知道`state`和`UI`都是用户定的,而不变的是这个`render()`。所以`Vue`就扮演了`render()`这个角色,当`Vue`发现`state`变化之后,经过一系列加工,最终将变化反应在`UI`上。 那么第一个问题来了,`Vue`怎么知道`state`变化了呢? ## 2. 什么是变化侦测 那`Vue`是怎么知道`state`变化了呢?换句话说,数据变化了是怎么通知给`Vue`呢?那么,这就引出了`Vue`中的变化侦测。 变化侦测就是追踪状态,亦或者说是数据的变化,一旦发生了变化,就要去更新视图。 变化侦测可不是个新名词,它在目前的前端三大框架中均有涉及。在`Angular`中是通过脏值检查流程来实现变化侦测;在`React`是通过对比虚拟`DOM`来实现变化侦测,而在`Vue`中也有自己的一套变化侦测实现机制。 那么,接下来我们就通过阅读源码来学习一下`Vue`是怎么实现自己的对数据变化进行侦测的机制。 ## 3. 总结 首先,我们知道了什么是数据驱动视图。数据驱动视图简单来说就是数据变化引起视图变化,那么第一步就是先要知道数据什么时候发生变化,也就是说对数据的变化要进行侦测。 其次,数据的变化侦测在三大框架中均有涉及,不同的框架有着自己的一套侦测机制。 最后,我们从源码出发,学习在`Vue`中是如何对数据进行变化侦测的。
上一篇:
学习准备
下一篇:
Object的变化侦测
该分类下的相关小册推荐:
vuejs组件实例与底层原理精讲
Vue.js从入门到精通(一)
TypeScript和Vue从入门到精通(四)
Vue面试指南
VUE组件基础与实战
vue项目构建基础入门与实战
TypeScript和Vue从入门到精通(二)
TypeScript和Vue从入门到精通(一)
Vue3技术解密
移动端开发指南
TypeScript和Vue从入门到精通(五)
Vue原理与源码解析