Vuex原始碼中module的register方法

2021-10-04 20:57:01 字數 1178 閱讀 9347

register 翻譯為登記 ,可以理解為 每乙個module都進行登記

vuex中的原始碼module-collection中兩個方法

class

modulecollection

get(path)

,this

.root)

}// path 為空陣列 rawmodule 為傳入的options

register

(path, rawmodule, runtime =

true

)else

// register nested modules

if(rawmodule.modules))}

}}

模擬實現

let obj =

, module:}}

, b:}}

, state:}/*

改為 格式

let root = ,

// 子module

_children:{}

}*/class

modulecollect

// 接收 屬性名陣列,和對應的option 引數列表

register

(modulenamelist,moduleoptions)

}// 判斷list身上是否是空的 如果是空的就讓根module為newmodule

if(modulenamelist.length ===0)

else

,this

.root)

// 父元素的children陣列裡面的最後乙個元素 為newmodule

parent._children[modulenamelist[modulenamelist.length-1]

]= newmodule;}if

(moduleoptions.module))}

}}console.

log(

newmodulecollect

(obj)

)

register 就是將傳遞的不規則引數,改為指定格式用於後續用途 vuex中大多數使用該種遞迴方式實現遞迴

vuex 原始碼分析 vuex原始碼解讀 簡易實現

原始碼解讀 開始之前,先貼個大綱 首先,我們從使用方法入手,一步步來看 store.js import vue from vue import vuex from vuex vue.use vuex export default new vuex.store data 2000 main.js im...

vuex原始碼實現

let vue 自定義foreach迴圈 author suzhe datetime 2019 07 28t11 12 17 0800 param obj description param classback description const foreach obj,classback 格式化模...

手寫Vuex原始碼

vuex是基於vue的響應式原理基礎,所以無法拿出來單獨使用,必須在vue的基礎之上使用。main.js 1 import store form store 引入乙個store檔案2 3new vue store.js 1 import vuex from vuex 2 3vue.use vuex ...