系列文章連接
主要記錄本身開始學習Vue的一些源碼閱讀:基於2.5.8版本node
Vue-SourceCode 介紹了git
- Vue構造函數如何來的,以及其上的屬性/方法/原型方法/靜態方法
- new Vue(options)的過程發生了什麼
- vnode對象如何生成
- vnode對象如何掛載到真實的DOM節點
- …..
VueRouter-SourceCode介紹了github
- 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等;