iT邦幫忙

2023 iThome 鐵人賽

DAY 30
0

Actions異步處理動作:
今天來更詳細介紹Vuex 中的 Actions異步處理動作。
Actions特別在處理非同步操作時,發揮了重要的作用。

一開始先假設 Vuex 就像是一個超級倉庫,裡面裝滿了整個應用程式的資料,而 Actions 就像是倉庫裡的一群快遞員,負責執行任務,將我們的需求傳遞給 mutations 或是執行一些異步操作。

假如我們需要一個功能,讓使用者點擊按鈕後,去獲取一些遠端的資料,這時候就需要用到 Actions:

actions: {
  fetchDataFromServer(context) {
    // 在這裡寫上獲取資料的程式碼
    // 例如使用 fetch 或 axios
    fetch('https://api.example.com/data')
      .then(response => response.json())
      .then(data => {
        // 當資料獲取成功後,呼叫 mutation 來更新倉庫中的狀態
        context.commit('updateData', data);
      })
      .catch(error => {
        console.error('Error fetching data:', error);
      });
  }
}

在這段程式碼中,我們定義了一個叫做 fetchDataFromServer 的 action,它接收一個參數 context,這個參數提供了訪問倉庫和提交 mutation 的能力。

在這個 action 中,我們使用了 fetch 方法去獲取遠端的資料,當資料獲取成功後,我們使用 context.commit 來呼叫一個 mutation 來更新倉庫中的狀態。

在組件中呼叫這個 action 也非常簡單:

methods: {
  fetchData() {
    this.$store.dispatch('fetchDataFromServer');
  }
}

這樣,當使用者在介面上觸發這個方法時,就會啟動 action,進而獲取遠端的資料。

總結來說,Actions 是在 Vuex 中處理異步操作的重要工具,它可以幫助我們管理非同步的任務,讓應用程式更加靈活強大。


上一篇
Day29 mutations更新器
系列文
學習網頁前端基本的技術,包含如何使用HTML標籤跟CSS做出基本的網頁版型,了解bootstrap template如何建置網頁架構。30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言