在vue專案中使用vuex
阿新 • • 發佈:2018-11-14
一個簡單的例子
在vue專案中使用vuex
首先需要先了解vuex中的store,然後在store中又有state,getter,action,mutation這幾個引數。
如何安裝vuex
,請檢視vue官網安裝vuex
下面演示一個簡單的使用vuex
的例項。
首先在state
中,定義一個引數:
const state = {
id: null,
}
我們按照習慣來寫,新建一個mutation-type.js
檔案,裡面存放,
export const SAVE_ID = 'SAVE_ID'
在mutaions中,定義方法:
import {RECORD_ADDRESS,} from './mutation-types.js' [SAVE_ID](state, id) { state.id = id; },
現在就是儲存store
中的id
值了
在需要的地方使用mapMutations
輔助函式,對映為store.commit
呼叫。
在這裡需要注意一點,需要從vuex
中引入這個輔助函式。
import {mapMutations} from 'vuex'
methods: {
...mapMutations([
'SAVE_ID',
]),##這個函式建議放在methods中
}
然後在方法中呼叫,即可儲存:
this.SAVE_PAPERID(this.id);
這時候已經可以使用$store.state.id
,獲取到id的值了,但是我又發現了一個問題,當頁面重新整理的時候,store中的值就消失了,這時查到解決方法。
將資料存放到localStorage
中。
只需要在mutation
中加入:
[SAVE_ID](state, id) {
state.id = id;
window.localStorage.setItem('SAVE_ID', state.id);
},
在獲取資料的時候在加入一個判斷:
computed: { id() { let localData = window.localStorage.getItem('SAVE_ID'); if(this.$store.state.id==null && localData) { this.SAVE_ID(localData); } return this.$store.state.id; } }
完成
參考部落格: