iT邦幫忙

第 12 屆 iT 邦幫忙鐵人賽

DAY 23
0
自我挑戰組

與Vue相遇系列 第 23

Day023-Vuex 資料控管介紹(三)-Mutation與Actions資料運作

https://ithelp.ithome.com.tw/upload/images/20201007/20130654wbT5UIeaF9.jpg

  • 需要用的頁面上:
  1. import Action和 State進來
  2. 透過methods調用mapActions
  3. 透過computed調用mapState
  • store配置Vuex:
  1. Action透過commit來引入mutation
  2. mutation改變state資料內容
  • 程式碼部分:

  • store:

export default new Vuex.Store({
  state: {
    accounts: []
  },
  mutations: {
    fetchAccounts: (state, payload) => {
      state.accounts = ["Edward", "Daisy"]
    }
  },
  actions: {
    fetchAccounts: ({ commit }) => {
      commit("fetchAccounts")
    }
  },
})

ps.這邊我的個人習慣,會將actions的函式名稱與mutation相同。這樣在管理上面,容易區分出哪一個actions是用來執行哪一個mutation。

  • 頁面部分:
import { mapActions, mapState } from "vuex";
 
export default {
  name: "Home",
  components: {},
  methods: {
    ...mapActions(["fetchAccounts"]),
  },
  computed: {
    ...mapState(["accounts"]),
  },
};

元件或組件,透過methods去dispatch Store的Actions,並將回傳的結果傳回頁面上mapState,最後由computed運做出來。

使用時,僅需要引入在模板上即可:

<template>
  <div class="home">
    <button @click="fetchAccounts">Fetch Account</button>
    <br />
    <pre>結果顯示:{{ accounts }}</pre>
  </div>
</template>

https://ithelp.ithome.com.tw/upload/images/20201007/20130654KMfcA8CMRx.jpg


上一篇
Day022-Vuex 資料控管介紹(二)-Sate資料內容
下一篇
Day024-Vuex 資料控管介紹(四)-Getters改變資料內容
系列文
與Vue相遇30

尚未有邦友留言

立即登入留言