大家好,我是 TooBug,Web 前端工程師,目前就職于某互聯網金融公司任前端架構師,負責過諸多項目的前端技術選型和架構。
我從業十年,經歷過長時間的純原生 JS 和 jQuery 開發,2012 年左右開始使用 backbone.js 開發,算是接觸到了 MVVM 時代的啟蒙框架。后來作為國內較早一批使用 MVVM 框架的前端工程師,開始實踐 Angular.js / Vue。
一路走過來,見證了前端框架領域的諸多變化,時至今日,數據驅動、組件化開發、單頁面前端路由……每一個點都是一步步探索而來,直到現在已經成為每一個成熟框架的共識。
作為一個前端架構師,在做技術選型的過程中,會面臨無數的問題:這個特性是否會引起理解上的歧義,使用這樣的開發方式是否會帶來性能的下降,為了提升團隊效率應該選擇激進的技術還是保守的技術……對這些問題的思考,會使得我在評估每一個框架的時候有更多的維度,而不僅僅是從某一個方面進行評價。
在日常工作及準備這個專欄的過程中,我了解到很多前端工程師,哪怕是一直在使用 Vue 的工程師也很少關注 Vue 的技術原理,當碰到問題的時候第一反應就是搜索一下,找一個相似問題的代碼片段,粘貼使用。
這樣的方式能夠解決當下的一小部分問題,然而當真的碰到復雜場景下的問題時,不僅找不到合適的解決方式,甚至由于對原理理解太少,連合適的搜索關鍵詞都找不到。
因此學習 Vue 絕不應該僅僅是學習它的用法。在用法這一點上,Vue已經做得足夠易用了。只有我們深入理解它的原理,才能夠應付在開發過程中的各種問題,找到根本原因并提出最合適的解決辦法。
最后,我為大家簡單介紹一下課程的具體安排:
課程安排:
首先,我會介紹相關背景及專欄內容,包含如何閱讀專欄的章節。
接下來我會用一章的篇幅來介紹相關前置知識,包含現代 Web 前端開發的特征及解讀 Vue 源碼需要的必備的相關前置知識。掌握這些知識可以幫助我們在閱讀源碼時不過分陷入細節,而是時刻保持對整體結構的關注。
介紹完前置知識后會進入接觸 Vue 的第一個部分,即實例及入口。通過了解 Vue 實例初始化的過程以及在不同環境下的包裝入口,我們就能弄清楚當我們使用 Vue 的時候,到底是在使用什么。
在看過 Vue 實例之后,我將介紹 Vue 最核心的幾個機制,包括依賴收集、數據監聽、模板編譯、組件機制等機制,掌握這些機制后可以說 Vue 源碼的精髓就已經大致掌握了。
再接下來一章,我會介紹在前面章節中因為篇幅安排而刻意漏掉的一些細節,例如渲染輔助方法、雙向綁定、slots、nextTick 等。
在看完 Vue 源碼的核心后,我們還會專門看一下編譯工具,因為這一部分實際上是貫穿在Vue 使用的全過程中的,了解編譯工具鏈的核心原理和實現有助于更好地理解 Vue 的實現原理。
最后,作為擴展,vue-router/vuex 等周邊的核心原理和實現也會簡單做一些介紹。
此外,因為 Vue 3 已經發布,我也將使用一章的篇幅來介紹 Vue 3 的主要變化和值得注意的實現細節。
這便是課程的全部內容,相信大家在看完后會有一些收獲。