vue的vuex儲存原理個人理解

2021-10-02 22:53:46 字數 1508 閱讀 8780

第一步:先說下為什麼會 new store() 它是怎麼來的

我們先來看段element-ui裡面的table**原始碼,裡面會出現乙個小型封裝的vuex

這裡只放**片段,嘿嘿,便於理解

這段在watcher.js

export default vue.extend(, // 不可響應的

filtereddata: null,

// 排序

sortingcolumn: null,

sortprop: null,

sortorder: null,

hoverrow: null}};

} 上面這段匯出的作用實際就是 const store = new store();對,就是這麼簡單。

它會返回乙個states的物件屬性

緊接著,在table.vue這個檔案裡面匯入store物件 data函式裡面建立

data() );

return ;

}接下來用createstore建立倉庫

export function createstore(table, initialstate = {})

const store = new store();

store.table = table;

object.keys(initialstate).foreach(key => );

return store;

}

簡單看下,放個**片段,watcher其實也就是store

通過對store賦值原型的方法加的commit函式

watcher.prototype.commit = function(name, ...args) else `);

}};const state = ,

const mutations =

}mutations是要通過方法觸發的,用於更改store裡的資料的。

元件呼叫方式: this.$store.commit('setstate', [value]) value可以是物件,可以是值等

接下來看mapstates 屬性對映函式

const res = {};

let fn;

if (typeof value === 'string') ;

} else if (typeof value === 'function') ;

} else

if (fn)

});return res;

};在計算屬性裡面呼叫,傳了物件自動獲取對應的字段屬性值

...mapstates(,

selection: 'selection',

columns: 'columns',

tabledata: 'data',

fixedcolumns: 'fixedcolumns',

rightfixedcolumns: 'rightfixedcolumns'

})

Vuex的核心原理

import vue from vue import vuex from vuex vue.use vuex let stroe newvuex.store getter mutations actions export default stroe 在main.js中 import vue from...

實現原理 Vuex的實現原理

你知道vuex如何工作的嗎?先來看下圖了解下 了解圖之後看來下 的實現原理吧 let vue class store this.mutations this.actions this.vm new vue const options if getters if mutations if action...

vue中vuex的總結

模板裡面不需要寫this.js中必須寫上 觸發事件的通知,如果需要資料的話,必須要指定兩個東西 訊息名和資料,不需要資料的話只指定訊息名 觸發store中對應的action去呼叫,要對應起來,如何對應呢?方法名和訊息名一致 元件中一旦要讀vuex管理的狀態或者計算屬性,都在元件的computed去操...