2017-09-11 94 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不仅用于客户端,如果您使用服务器端渲染,它将在服务器上初始化并传递给客户端。 –