新增一個 store 來管理網站資料狀態
這章節會將兩個各自透過變數 Loading
管理 vue-loading-overlay
的元件統一由 store
來管理
1 | <template> |
安裝 Vuex
首先透過以下指令安裝 Vuex
1 | npm install --save vuex |
在進入點 main.js 啟用
下載後在進入點 main.js
啟用
1 | // in main.js |
新增 store 管理檔案
可以透過新增一個 store
資料夾,並在其內新增一個 index.js
檔案來彙整所有 vuex
的行為,同樣的,需要先載入 vue & vuex
1 | // in store/index.js |
載入 vue & vuex
後就可以透過 ES6
的 export default
來輸出資料內容
1 | export default new Vuex.Store({}) |
從進入點載入管理檔案
存檔後就可以在進入點 main.js
載入這支彙整 vuex
的檔案
1 | // in main.js |
新增管理變數
vuex
會將原先由各自元件管理的變數統一由一個檔案來彙整,在這個範例中會將 isLoading
這個變數拉到 state
中管理
1 | // in store/index.js |
載入管理變數
改由 vuex
管理變數後,原先在各元件中的變數就可以移除,並透過 compoted
來載入由 vuex
檔案來統一管理的變數 ; 而在這裡可以使用與原先相同的變數名稱 isLoading
來建立函式,就可以不用該改 HTML
元素中的設定
1 | // in component |
更改變數的值
過往透過更改變數的值來控制呈現狀態的方式,在這裡要更改的變數也要改成 vuex
檔案中的變數
1 | // in component |
刪除子元件元素
透過 vuex
統一管理變數的方式,子元件中的元素就可以刪除,並統一由父元件與 vuex
檔案來管理
1 | <!-- in child component --> |