首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
vue源码
修竹
创建于2021-06-05
订阅专栏
vue源码学习笔记
等 27 人订阅
共42篇文章
创建于2021-06-05
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
vue2视图切换:vue-router
vue路由是单页面中视图切换的方案,路由点击的过程会分两步:url的替换和真实组件的替换,替换过程会存放在浏览器记录中。
vue中的v-model
节点或者组件的渲染都大底会经历通过编译进行render函数的获取、虚拟DOM的获取和视图渲染过程这三个主要流程。
vue生命周期底层实现
生命周期的目的是在实例化Vue的过程中,函数的不同阶段可以调用不同的钩子函数,根据不同阶段的不同特点进行业务逻辑的处理。
vue中的data为什么是函数?
开发时无需担心什么时候该将data写为函数还是对象,因为vue内部已经做了处理,并在控制台输出错误信息。
vue中v-if和v-show的区别(源码分析)
v-if和v-show的使用需要根据场景,一般来说,v-if 有更高的切换开销,而 `v-show` 有更高的初始渲染开销但切换开销较小。
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由来!
下一页