首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
vue2源码手写
vitaler
创建于2023-10-09
订阅专栏
工作中虽然用的很多,但原理只停留在八股文。 为追根溯源,手写下源码,仅做个人学习记录使用。
等 1 人订阅
共11篇文章
创建于2023-10-09
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
vue2源码学习--10组件的渲染
首先知道两个全局api,Vue.extend和Vue.component。 功能上来说,Vue.extend(options)会返回一个拥有Vue所有方法的类(构造函数),实例化的时候会调用继承来的i
vue2源码学习--09dom更新diff算法
diff算法属于是老生常谈了,也是趁着这次手写源码,把这套流程实实在在的写一遍。 之前写render函数的时候已经实现了部分patch方法,patch当时就说了有第一次从虚拟dom生成真实dom的功能
vue2源码学习--08监听属性watch
本篇实现watch,watch用到的仍然是watcher类,依赖收集我们已经实现了(上一篇computed的Dep.target的赋值问题),只要数据更新的时候我们调一下传进来的回调函数即可,我们此次
vue2源码学习--07计算属性computed
computed主要要注意的有两点: 1、通过所谓的脏值检测,来保证多次使用该值但是只执行一次里边的回调函数并记录该返回值 2、依赖收集和更新,计算属性可能依赖多个值,需要保证只要依赖有变化就要去重新
vue2源码学习--06数组的依赖收集和更新
正如标题,本篇是实现数组的依赖收集以及更新通知,但是实际上我们其实是对数组是做了new Dep并且视图读取的时候进行了依赖收集的,只不过进行数组的更新的方法(如push)的时候无法触发set方法,只有
vue2源码学习--05Mixin和生命周期核心原理
本篇目的是实现Mixin核心原理,以及生命周期函数的调用原理。 关于mixin的功能,核心就是选项合并,data就是数据合并,声明周期函数是会把所有混入进来的放入到一个队列里循环调用。 然后我们需要认
vue2源码学习--04统一异步更新方法 nextTick
更新数据之后直接获取dom和通过promise.then获取的dom都是滞后的, 原因是当前我们通过setTimeout实现的数据异步更新,同样是异步的微任务会优先于它执行,这就导致我们必须通过set
vue2源码学习--03实现依赖收集
前边我们已经实现数据的响应式和模板解析,并在模板解析的时候读取data的数据触发了get,本篇的目的是实现基本数据的依赖收集(老样子先不写数组),并在数据更新后自动更新视图
vue2源码学习--02-2模板编译(从ast语法树到虚拟dom再到真实dom)
如标题,模板编译第二步,获取到ast语法树之后就要考虑生成虚拟dom了,而生成虚拟dom的关键就是就是render函数,最后一步就是虚拟dom转换成真实dom
vue2源码学习--02-1模板编译(template到ast语法树)
手写vue2源码第二篇,回顾第一篇数据的响应式,然后本篇写了模板编译的上半部分从tamplate到ast语法树。这块没什么难度主要是需要心细。
vue2源码学习--01数据响应式
前言 虽然工作中经常用vue,但对核心原理的理解仅存在一些面试八股文,为加深理解开始手写源码。 本系列目标是学习vue2源码,基本手写实现核心api并打包出能使用的vuejs文件