一、官方文檔
1、第一步
const myPlugin = store => { // 當 store 初始化后調用 store.subscribe((mutation, state) => { // 每次 mutation 之后調用 // mutation 的格式為 { type, payload } });};2、第二步
const store = new Vuex.Store({ // ... plugins: [myPlugin]});二、編寫一個打印日志的插件
1、函數的書寫
import _ from 'lodash';function logger() { return function(store) { let prevState = store.state; store.subscribe((mutations, state) => { console.log('prevState', prevState); console.log(mutations); console.log('currentState', state); prevState = _.cloneDeep(state); }); };}2、使用
export default new Vuex.Store({ modules: { ... }, strict: true, plugins: process.NODE_ENV === 'production' ? [] : [logger()]});三、 vuex 數據持久化
1、函數的書寫
function vuexLocal() { return function(store) { const local = JSON.parse(localStorage.getItem('myvuex')) || store.state; store.replaceState(local); store.subscribe((mutations, state) => { const newLocal = _.cloneDeep(state); sessionStorage.setItem('myvuex', JSON.stringify(newLocal)); }); };}2、使用
export default new Vuex.Store({ modules: { ... }, strict: true, plugins: process.NODE_ENV === 'production' ? [vuexLocal()] : [logger(), vuexLocal()]});3、類似的第三方庫
總結
以上所述是小編給大家介紹的vuex 中插件的編寫案例解析,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!
新聞熱點
疑難解答