Vuex與狀態管理

更新 發佈閱讀 4 分鐘
Vuex 像一個公用容器管理所有資料,作為整個網站全域狀態管理,將狀態集中 Store 管理。

【Why】: 為什麼需要Vuex ?

Vue 用組件溝通方式;都是利用父子元件溝通,透過props 、emit 。

那如果不是父子關係,要如何溝通呢? Vuex 專為 Vue.js 應用程序 狀態管理模式,採集中式存儲管理應用的所有組件狀態.

【What】 : 什麼是Vuex

* Vuex 特性

  1. 資料存在專案裡,隱私好。
  2. 專案全域狀態
  3. 重新整理資料會不見

* Vuex『單向數據流』

vocus|新世代的創作平台
  1. 畫面觸發事件(View)
  2. emit (Actions) 修改資料
  3. 包括修改 props所傳遞的資料(State)
  4. 更新畫面 (View)

* Vue 工作流程

vocus|新世代的創作平台

1.component 元件 觸發 actions

this.$store.dispatch('Logout',self.userToken);

2.action 透過commit 觸發 mutations
3.mutations 執行邏輯運算,改變store 狀態
4.當store狀態被改變時,觸發Render渲染元件
5.透過Vue.js devtools觀察其變化

* Vuex 架構

1.action → commit → mutation

(非同步)Actions(觸發 mutations)=> 改變資料狀態
(同步)Mutations(修改 states)=> 實際操作狀態

state: {
類似data,管理資料
},
actions:{

負責觸發 mutations,主要處理非同步行為 ex: 打 API
// 登出
Logout({commit}){
commit("CLEAR_USER_DATA");
router.push('/');
}
},
mutations: {

負責修改 store 資料,主要處理同步行為
CLEAR_USER_DATA(){
localStorage.removeItem("Authorization");
}

},

};

2. Vuex提供了分割模組

狀態全部集中到同一個Store,避免變得複雜。

state:{

},
actions:{

},
mutations: {

},
getters:{
store 的計算屬性
取得資料。也可以像 computed 一樣,自定義運算處理資料。
},
modules:{
按專案功能需求,分拆為不同 module。
每個 module 裏都有自己的 state、actions、mutations、getters,也可以設定巢狀 modules。
}

How】 : Vuex 語法

  1. 元件取得Vuex 資料
this.$store

2. 觸發 Vuex actions

this.$store.dispatch('Logout',傳遞資料);

3. mapGetters

一口氣將多筆狀態引入進來。

引入 store 的各種屬性到元件裏使用。

computed: {
...mapGetters({ allTodos: 'getTodos' })
}

等於下面寫法

computed: {
...mapGetters(['getTodos']),
allTodos() {
return this.getTodos;
}
}
留言
avatar-img
Kate Liu的沙龍
2會員
2內容數
你可能也想看
Thumbnail
Vue3 學習筆記,元件與資料傳遞篇
Thumbnail
Vue3 學習筆記,元件與資料傳遞篇
Thumbnail
續上篇,那是Vue 2 Options API的舊寫法,這邊改成用Vue 3 Composition API的寫法: Vue2: Vue3 setup() / ref / reactive Composition API可以直接在setup()裡面定義data跟method,簡潔許多。 props
Thumbnail
續上篇,那是Vue 2 Options API的舊寫法,這邊改成用Vue 3 Composition API的寫法: Vue2: Vue3 setup() / ref / reactive Composition API可以直接在setup()裡面定義data跟method,簡潔許多。 props
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
專案建好了,那先來講 Vue 的專案架構 詳細內容很多,所以我挑重點講 public index.html public/index.html 是 Vue 頁面的 entry point,進入一個 Vue 頁面會先進 public/index.html,再套用 App.vue,最後才是進入你寫的 .
Thumbnail
專案建好了,那先來講 Vue 的專案架構 詳細內容很多,所以我挑重點講 public index.html public/index.html 是 Vue 頁面的 entry point,進入一個 Vue 頁面會先進 public/index.html,再套用 App.vue,最後才是進入你寫的 .
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
前言 Vue 是一個現代開發框架,擁有完尚的生態系,讓我們可以將須多元件客製化,做出組件,並且可重複利用,高擴充性。在開發組件時,每個組件都擁有自己的生命周期,Vue 組件會偵測每個變數值,是否有變,並且更新內容,今天要一個一個了解 Vue 的生命週期,讓大家有更多認識。 Vue 的生命週期
Thumbnail
前言 Vue 是一個現代開發框架,擁有完尚的生態系,讓我們可以將須多元件客製化,做出組件,並且可重複利用,高擴充性。在開發組件時,每個組件都擁有自己的生命周期,Vue 組件會偵測每個變數值,是否有變,並且更新內容,今天要一個一個了解 Vue 的生命週期,讓大家有更多認識。 Vue 的生命週期
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
狀態管理有點像是 cookie 或 localStorage,可是又多了更多操作可以用,讓你再切換頁面時可以使用相同的變數。 用來使用這個功能的套件叫做 vuex 以下不是狀態管理全部的功能,但是最常在用的其實就是這些 state 首先先來定義一個可以在各個網頁頁面取用的變數吧 所有的狀態管理設定
Thumbnail
狀態管理有點像是 cookie 或 localStorage,可是又多了更多操作可以用,讓你再切換頁面時可以使用相同的變數。 用來使用這個功能的套件叫做 vuex 以下不是狀態管理全部的功能,但是最常在用的其實就是這些 state 首先先來定義一個可以在各個網頁頁面取用的變數吧 所有的狀態管理設定
Thumbnail
Vue3 筆記,指令進階篇
Thumbnail
Vue3 筆記,指令進階篇
Thumbnail
Vue3 學習筆記,專案建立與基礎響應式篇
Thumbnail
Vue3 學習筆記,專案建立與基礎響應式篇
Thumbnail
如果前人已經走出一條最佳路徑,我們只顧著欣賞也會到山頂 關注點的改變 一個好的架構都會希望讓開發者能專注在”業務邏輯”的實現,可以提高專案的開發效率、減少開發者非關業務邏輯的事情而煩惱。例如: 開發者A: 請問元件的對話窗如何在確認時控制關閉或開啟狀態? 這個實際案例是架構師認為對話窗的動作
Thumbnail
如果前人已經走出一條最佳路徑,我們只顧著欣賞也會到山頂 關注點的改變 一個好的架構都會希望讓開發者能專注在”業務邏輯”的實現,可以提高專案的開發效率、減少開發者非關業務邏輯的事情而煩惱。例如: 開發者A: 請問元件的對話窗如何在確認時控制關閉或開啟狀態? 這個實際案例是架構師認為對話窗的動作
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News