2017-09-11 105 views
0

我正在修改hacker-news example,我添加了通知組件(如果獲取外部數據出錯:在vuex中保存錯誤的通知,用戶讀取並點擊X將其從vuex狀態中刪除)。看起來是這樣的:Vuex - 共享服務器端狀態?

[NOTIFY] (state, message) {  
state.data.push(message)  
}, 

[READ_NOTIFICATION] (state, index) { 
state.data.splice(index, 1) 
} 

問題:當數據被獲取和國家正在對服務器的設置,它不斷的錯誤中的全局狀態永遠,這意味着如果我打開新的瀏覽器,我會得到相同的老錯誤來自上屆會議。

不應該在每個請求上重置服務器端vuex狀態嗎?我錯過了什麼?

+0

*遷答案用於格式化* –

+0

如果你遵循這個例子,app.js中的const store = createStore()就是爲每個請求創建一個新的存儲。你在哪裏/如何加載該商店? –

回答

-1

我很困惑你的意思是「服務器端狀態」。 Vuex是一家客戶端商店。什麼以及爲什麼要將狀態保存到服務器?

此外,我不能告訴你在做什麼與代碼?這是在一個store.js文件?在突變對象?

你會需要包裝,在一個VUE方法,像這樣:

在VUE文件:

methods: { 
    clicksButton (idx) { 
    this.$store.commit('read_notification', idx) 
    } 
} 

在store.js文件:

const store = new Vuex.Store({ 
    state: { 
    data: [], 
    error: null 
    }, 
    mutations: { 
    read_notification (state, idx) { 
     state.data.splice(idx, 1) 
    } 
    } 
} 
+0

Vuex不僅用於客戶端,如果您使用服務器端渲染,它將在服務器上初始化並傳遞給客戶端。 –