# 准备工作

# 为什么要学习vue源码

  1. 可以弄明框架一些功能的实现原理,我们在使用上更加灵活了,遇到使用框架层面的问题可以快速解决

    例如:在一个嵌套的组件里,在子组件想让怎整个组件重新渲染,在这种场景下,我们看一下不懂框架原理和懂框架原理的两种不同的用法:

    不懂的:把顶层组件的数据传入子组件中,在子组件重新赋值:this.parentData = JSON.parse(json.strinify(this.parentData))

    懂得:this.parentData.__ob__.dep.notify()

  2. 学习源码,也是对我们知识的一个查漏补缺

    例如:当你不知道js原型以及原型链是什么,我相信你要是把vue源码看懂了,那这块知识你也就掌握了,掌握了这块知识后再看一些其他库的源码就容易多了

  3. 可以学习到一些好的设计模式思想

    例如:vue把全局的api挂在Vue上,如:Vue.use把实例用的api挂在了Vue.prototype上,如:this.$set()

# 初衷

我想把我学习vue源码的过程总结下来,一是加深自己对Vue的理解,二是希望能帮到读者,哪里有说的不对的地方请大家斧正