吃透vue3没有什么是比写一个vue3更好的方法了。
一直使用vue总要了解一下vue的底层实现,正好vue3也成为了默认版,就突发奇想的想深入一下vue的源码,开始看vue3源码的时候真是糟糕透了,并不知道从那里开始,后来想到可以通过测试驱动开发,了解了一边vue3源码后就想着自己也动手实现一个属于自己的vue3。
定好目标之后就从reactive模块开始入手,因为其他模块很多都是基于reactive实现的,目标有了就准备着手实现了。
实现方法还是之前说的测试驱动开发,我是将vue3源码中的jest测试复制到自己的项目中,然后一步一步的跑通各个测试,直到最近两周时间过去了,终于跑通了vue3中reactive的所有模块,当然了里面还有一个基于watch和nextTick的测试用例还未跑通,这里就需要后面实现runtime-core来实现了。
这个图中有我制作中整理的一些功能流程,当实现完成一个之后其他很多都是相似的功能点,做完之后会发现思想真的很重要。
这里一共跑了接近300个测试,大家可以学习一下测试驱动开发,当完善其他测试的同时可能会引起之前测试完成的用例,这时就可以快速定位问题并解决了,可以高效了避免了查找问题的时间。
顶部有我的github地址,里边标明了注释,可以指出问题或一起讨论vue3的知识,争取早日完成一个属于自己的vue3。