系列文章連結
主要記錄自己開始學習Vue的一些原始碼閱讀:基於2.5.8版本
Vue-SourceCode 介紹了
- Vue建構函式如何來的,以及其上的屬性/方法/原型方法/靜態方法
- new Vue(options)的過程發生了什麼
- vnode物件如何生成
- vnode物件如何掛載到真實的DOM節點
- …..
VueRouter-SourceCode介紹了
- VueRouter的插入,VueRouter的使用,VueRouter例項的生成
- VueRouter例項物件上的matcher和history物件的建立
- VueRouter中的Vue元件RouterLink和RouterView的原始碼實現
Vuex-SourceCode介紹了
- Vuex的插入,Vuex的使用,Vuex.Store的例項生成
- Vuex例項生成:ModuleCollection installModule resetStoreVM等核心建立store例項的時候實現
- Vuex物件中的輔助函式 mapGetters. mapActions等的原始碼實現
- Vuex.Store生成的例項物件commit(同步)和dispatch(非同步)的原始碼實現與區別
對比VueRouter和Vuex
- new VueRouter(options). new Vuex.Store(options) 中的options都支援route巢狀和module巢狀
- route的巢狀,無論主路由還是子路由,都對映到了matcher物件上
- module的巢狀,無論主模組還是子模組,actions getters mutations都對映到了store物件上,所以後面在任何子元件中都可以通過輔助函式得到modules中的getters actions mutations等
- router-view元件根據matcher匹配到的元件進行渲染對應的元件
- 輔助函式可以在各個元件中獲取到store例項物件上的actions. getters. mutations等;