1.傳值
// 定義參數 let params = { workItemId: workItemId, flowInstId: flowInstId, itemStatus: itemStatus, type: type, srcId: srcId } // 保存參數 this.$store.dispatch('approvalConfirmParams', params);
2.vuex
(1)index.js
/** * 步驟一 * vuex 入口文件 */ // 引入 vue import Vue from 'vue' // 引入 vuex import Vuex from 'vuex' import actions from './actions' import mutations from './mutations' Vue.use(Vuex); // 導出 export default new Vuex.Store({ modules:{ mutations }, actions });
(2)types.js
/** * 步驟二 * 狀態(類型) */ // 審批歷史頁請求參數 export const APPROVAL_HISTORY_PARAMS = 'APPROVAL_HISTORY_PARAMS';
(3)actions.js
/** * 步驟三 * 管理事件(行為) */ // 引入 狀態(類型),用於提交到mutations import * as types from './types' // 導出 export default { // 保存 請求參數 approvalHistoryParams為上面的"action名" approvalHistoryParams: ({commit}, res) => { // 此處是觸發mutation的 STORE_MOVIE_ID為"mutation名" commit(types.APPROVAL_HISTORY_PARAMS, res); } }
(4)mutations.js
/** * 步驟四 * 突變(處理狀態改變) */ import { APPROVAL_HISTORY_PARAMS // 審批歷史參數 } from './types' // 引入 getters import getters from './getters' // 定義、初始化數據 const state = { approvalHistoryParams:{} } // 定義 mutations const mutations = { // 匹配actions通過commit傳過來的值,並改變state上的屬性的值 // 審批歷史頁 請求參數 [APPROVAL_HISTORY_PARAMS](state, res){ state.approvalHistoryParams = res; //state.數據名 = data } } // 導出 export default { state, mutations, getters }
(5)getters.js
/** * 步驟五 * 獲取數據 */ // 導出 export default { // 獲取 審批歷史參數 approvalHistoryParams: (state) => { return state.approvalHistoryParams; } }
3.取值
import { mapGetters } from 'vuex'; export default { computed: { ...mapGetters([//...函數名 使用對象展開運算符將此對象混入到外部對象中 'approvalHistoryParams' ]) }, methods: { fetchData(){ console.log(this.approvalHistoryParams.name); } } }
注:
dispatch:含有異步操作,例如向后台提交數據,寫法: this.$store.dispatch('mutations方法名',值)
commit:同步操作,寫法:this.$store.commit('mutations方法名',值)