首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
vue源码
bqb
创建于2021-06-05
订阅专栏
vue源码学习笔记
等 24 人订阅
共37篇文章
创建于2021-06-05
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
vue中v-for和v-if可以一起使用吗?
v-if和v-for同时出现的场景可以拆分为,数据在渲染之前借助生命周期进行处理,也可通过计算属性的方式进行处理。
vue2从template到render:optimize
静态节点和静态根的静态属性的添加都是一个递归的过程,并且静态节点的属性依赖于其子节点是否全部是静态节点。
vue2从template到render:code
整个过程是递归的过程,递归的过程中以children为桥梁,不断的进行code的构建,ast树变成了可通过new Function()进行执行的字符串。
vue2从template到render:模板编译入口
vue模板编译的真实入口是baseCompile,但是从compileToFunctions方法开始进行了大量函数的嵌套,主要目的是通过闭包的方式进行缓存处理和平台参数与用户参数的合并。
vue2从数据变化到视图变化:侦听器
侦听器是当数据发生变化时可以让用户执行自定义行为,并且支持通过对象的方式传入多个handler,也可以通过传入deep和immediate来支持深度遍历和立刻执行的需求。
vue2从数据变化到视图变化:计算属性(computer)
计算属性也是Watcher类的实例,在访问所依赖的数据时被收集,在依赖的数据发生变化时依然触发dep.notify.
vue2从数据变化到视图变化:diff算法图解
diff算法从两端进行比对,找不到再从中间寻找,是一种 “滑动窗口” 算法的使用,以达到通过节点移动来实现原地复用的目的。
vue2从数据变化到视图变化:Vue.$set(this.$set)原理分析
理论上当vue中的数据发生变化时视图会进行渲染,但是,有些情况下数组变化和对象变化的时候,视图没有进行变化,这个时候就需要vue提供的方法进行处理。
vue2从数据变化到视图变化:发布订阅模式
vue中的发布订阅者是在借助Object.defineProperty将数据变成响应式的过程中定义了dep,在get过程中dep对于订阅者的加入进行处理,在set修改数据的过程中dep通知订阅者。
vue2从数据变化到视图变化:nextTick
nextTick在vue中是一个很重要的方法,在new Vue实例化的同步过程中,将一些需要异步处理的函数推到异步队列中去,可以等new Vue所有的同步任务执行完后,再执行异步队列中的函数。
vue2从数据到视图渲染:组件注册(全局组件/局部组件)
全局组件一次注册在页面中可以到处使用,局部注册只在当前页面中可以用。一般使用率比较高的组件可以通过全局注册,只在当前页面中的业务组件可以通过局部注册完成。
vue2从数据到视图渲染:组件渲染
组件获取vNode是通过` createComponent(tag, data, context, children)`,组件渲染主要是通过执行钩子函数`init`。
vue2入口:实例化入口
这个`function Vue(options) {this._init(options)}`就是Vue的入口。
vue2入口:构建入口
vue.js在构建过程中,将描述式的构建数组转换成rollup可以执行的数组,并通过控制台的参数对当前数组进行过滤,最后通过递归的方式进行构建队列的有序执行。
const h = this.$createElement
new V({ el: '#app', render(h) { return h(App) } })中的h由来!
JavaScript中的继承方式
对象是一组属性的无序集合,继承可以让对象的产生有迹可循,有类可分。(原型链、盗用构造函数、组合继承、原型式继承、寄生式继承和寄生式组合继承)
VUE2.0学习笔记(编译)
编译入口 vue渲染成虚拟DOM的方式有两种,一种是手写render函数,一种是通过vue编译的方式将template模板编译成render函数,开发中最常用的方式是编写template。 vue中t