Skip to content

AmazingWTF/my-vue

Folders and files

NameName
Last commit message
Last commit date

Latest commit

a991300 · Aug 2, 2018

History

25 Commits
Apr 13, 2018
Aug 2, 2018
May 29, 2018
May 21, 2018
Aug 2, 2018
May 29, 2018
May 29, 2018
May 29, 2018

Repository files navigation

RESOURCES

current commit by Evan You: https://github.com/vuejs/vue/commits/v1.0.20?before=b12e21cb36522f8defab82de3111502a8b97083f+1787 git commit version: e9ecdfe1c0f695396ce790f9637787239d180804

INTRO

observer

继承自 Emitter(on, once, off, emmit, applyEmit)
根据传递的数据类型将数据的原型对象(__proto__)属性改写(数组里面是改写原生方法,然后将发生的变化提交到mutation事件处理, 对象中则是使用convert方法将普通对象转化为getter/setter对象,在get和set事件中触发相应事件)
on、once 等方法在当前observer对象中添加 _cbs 属性(Array),存储注册的监听事件;emit事件则是遍历执行对应事件的所有注册事件

event

core/instance/evnets.js
事件处理函数initEvent -> vdom/helpers  updataListeners函数 处理新旧监听事件
(ps: capture标识暂未发现用途)

compiler

compiler/index.js

知识点记录

  • next内部实现机制:

    利用原生Promise或者MutationObserver来实现,但是MutationObserver在IOS>=9.3.3上利用touch事件触发几次之后会完全停止工作,所以如果原生Promise可用,优先使用Promise.then,再不行的话,就使用setTimeout

About

try to implement vue by myself

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published