Vue源码分析思路脑图
2023-02-01 17:46:55 0 举报
AI智能生成
简化文件内容,了解文件的内容原理
作者其他创作
大纲/内容
初始化流程
入口文件(src/platforms/web/entry-runtime-with-compiler.js)
web运行时代码(platforms/web/runtime/index)
实现$mount
mountComponent执行首次渲染,更新core,instance,/lifecycle.js
Vue.prototype._patch_ = inBrowser? patch:noop
全局API定义
全局API实现(src/core/global-api/index.js)
Vue构造函数定义(core/instance/index.js)
initMixin实现_init(core/instance/init.js)
initLifecycle(vm)
vm.$parent/$root/$ref/$children
initEvents(vm)
vm._event
updateComponentListenners(vm, listeners
initRender(vm)
vm._c
vm.$crateElement
beforeCreate
initInjections(vm)
resolveIniect(vm.$options.inject, vm)
definReactive(vm, key, result[key])
initState(vm)
initP[rops
initMethods
initData
initComputed
initWatch
initProvide(vm)
vm._provide
created
stateMixin定义$data,$props,$set,$delete(core/instance/state.js)
eventsMixin定义$on,$emit,$off,$once(core/instance/events.js)
lifecycleMixin定义_update,$forceUpdate,$destory(core/instance/lifecycle.js)
renderMixin定义两个实例方法$nextTick和_render(core/instance/render.js)
数据响应式
observer返回一个Obsever实例(core/observer/index.js)
Obsever对象根据类型执行对应的响应化操作(core/observer/index.js)
defineReactive定义对象属性的getter/setter(core/observer/index.js)
Dep管理一组watcher,Dep关联的值更新时通知其管理的watcher更新(core/observer/dep.js)
Watcher监控一个表达式或关联一个组件更新函数,数值更新则指定回调或更新函数被通知(core/observer/watcher.js)
s数组响应式
f覆盖数组原型(core/observer/index.js)
数组响应式的特殊处理(core/observe/index.js)
依赖收集时特殊处理(core/observe/index.js)
虚拟dom
js对象用来描述dom结构(使用diff算法来j减少dom更新操作)
编译器
编译处理
收藏
0 条评论
下一页