前言:

为了学习vue-next源码,我不仅一遍做思维导图,还写了一个mini-vue库,该库目前只有reactivity局部,在库中还蕴含了相干的流程图等更不便了解原理,对于runtime-dom局部网上曾经有相干的demo了。

思维导图
mini-vue-reactivity

提出几个疑难:

细节的代码,都曾经在demo中做了正文。上面就一起来思考几个问题。
学习就是一个提疑的过程。如果真的想从源码中学习更多的常识,品味代码中的细节也是很有意思的。
一问,为什么proxy代理的对象,在拦挡办法中,是用Reflect原型拜访对象属性的?

二问,scheduler的实现,为什么只用promise就能够?而vue2中却setTimeout,setimmediate等?

三问,为什么watch的生效函数是通过runner函数的参数传入的,而不通过返回stop函数的参数传入呢?

四问,组件定义的watch到底需不需要咱们手动去stop呢?

五问,为什么scheduler中要定义前置缓冲队列,同步队列,后缀缓冲队列?

从源码中学到了

优雅的命名

高级函数

weekmap的正确打开方式

调度的实现