首页
首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
vue2源码学习
南陵X罗
创建于2022-10-08
订阅专栏
框架在深不在多,一直跟着黄轶老师的视频思路和《深入浅出vuejs》来学习源码
等 2 人订阅
共14篇文章
创建于2022-10-08
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
vue2组件化(2)- 组件的挂载过程
通过一个例子来分析 接着上一篇,通过 vm._render生成了组件vnode,就该通过vm._update来插入到dom中,vm._update中调用了vm.__patch__,然后调用 creat
vue2组件化(1)- createComponent 创建组件
src/core/vdom/create-element.ts 当使用组件化开发,会进入逻辑 vnode = createComponent(Ctor, data, context, children
vue2数据渲染(5)- _update
_update 方法是实例的一个私有方法,它在首次渲染,和数据更新的时候被调用,这里只说一下首次渲染,它的作用是将 VNode 转换成真实的DOM src/core/instance/lifecycl
vue2数据渲染(4)- createElement
src/core/vdom/create-element.ts children是子节点,if (isArray(data) || isPrimitive(data))说明data没有传,第3个参数是
vue2数据渲染(3)- _render
vue有一个私有的实例方法 _render ,这个方法获得vnode src/core/instance/render.ts 在最开始的文件 src/core/instance/index.ts 中,
vue2数据渲染(2)- $mount 挂载
$mount 方法在多个文件中都有定义,如 src/platform/web/runtime-with-compiler.ts、src/platform/web/runtime/index.ts。 因
vue2数据渲染(1)- new Vue
一般我们在vue项目这样写 通过分析2.7.14版本 来看看vue如何一步步把数据渲染到dom中 定义 Vue 入口 src/core/instance/index.ts vue不使用类的方式来定义,
vue2响应式原理(7)-- 侦听属性watch
初始化watch src/core/instance/state.ts 1、遍历watch对象,或取每一个key对应的值handler,const handler = watch[key],如果是数组
vue2响应式原理(6)-- 计算属性computed
计算属性computed 接下来以上面这个例子举例分析 为每个计算属性创建watcher src/core/instance/state.ts 首先定义watchers和vm._computedWat
vue2响应式原理(5)-- 监测数组 Array
在通过 observe 方法去观察对象的时候会实例化 Observer,在它的构造函数中是专门对数组做了处理 覆盖原型或原型上某些方法 src/core/observer/index.ts 从上面代码
vue2响应式原理(4)-- 新增 vm.$set、删除 vm.$delete
先看一段vue官网中的描述: Vue 无法检测 property 的添加或移除。由于 Vue 会在初始化实例时对 property 执行 getter/setter 转化,所以 property 必须
vue2响应式原理(3)-- nextTick 异步更新
平时我们手写vm.$nextTick,Vue.nextTick都是这里的nextTick方法 src/core/observer/sheduler.ts src/core/util/next-tick
vue2响应式原理(2)-- 收集依赖、派发更新
defineReactive get收集依赖 src/core/observer/index.ts 首先创建一个和key一一对应的dep, 一个key就对应着一个Dep; 下面代码中, Dep.tar
vue2响应式原理(1)--初始化响应式对象data
一直跟着黄轶老师的视频以及《深入浅出vuejs》来学习vue2源码, 为了加深理解和记忆,想着写一写学习记录, 以vue2.7为学习版本 initMixin 在src/core/instance/in