1b5f4e6421eb3ec12cfa1b5cf499ecad
为什么要学习源码以及如何快速阅读理解源码

为什么要学习源码

几个月前,一名同事找到笔者,让笔者帮忙解决一个Vue.js项目的性能问题,当时他的页面操作时卡顿十分严重,但是看着代码却是无从下手,在网上搜索解决方案更是难于登天,毕竟网上的资料对于性能问题往往更多的是提供一个解决思路,很难找到两个完全相同的问题以及解决方案。

笔者在源码中打断点调试并加上一些console.time,看看时间耗费在哪里,分析出性能问题的原因,然后针对它进行优化。最后当然是顺利解决了这个问题,那个同事也在笔者的影响下开始阅读起了Vue.js源码,在这过程中快速地成长了起来,以后遇到相似的问题再也不会感到无从下手了。

Vue.js是一个以数据作为驱动的MVVM框架,我们只需要对数据进行操作,即可改变对应视图,大大提高了我们的开发效率并降低了维护成本。但是你们有没有思考过,Vue.js究竟是如何在我们对数据进行操作的时候影响视图的呢?修改的数据如何批量高效地映射到视图上呢?传统的DOM操作又在何时进行的呢?可是很多同学并没有对其原理有一个更深一层的理解,导致在遇到一些难以琢磨的问题的时候会感到无从下手。

程序届的「二八定律」,百分之八十的问题可以运用百分之二十的知识来解决,而剩下的百分之二十的问题需要运用百分之八十的知识来解决。准备好那百分之八十的知识,才会在遇到有挑战的问题时更加游刃有余,机会永远留给准备好的人。

了解底层机制不是必须的,但却是必要的,在你遇到性能问题或者是难以琢磨的问题时,你可以有条不絮地分析排查,而不是靠着猜测或者搜索别人的解决方案。

top Created with Sketch.