根据vuex状态重新加载组件数据

时间:2019-02-04 13:37:57

标签: javascript vue.js vuex vue-router

我正在为多个网上商店创建一个管理面板。为了跟踪我当前正在编辑的网站,我在vuex状态下有一个website对象。可以通过在状态上调度操作的按钮来更改网站。

“管理控制台”页面是显示所选网站的统计信息的页面,这些统计信息的数据当前保存在页面组件本身上。

现在,当我在仪表板上时,我转到另一个网站时遇到了问题。由于仪表板的URL相同,因此统计信息不会更改。我想这是因为vue-router尚未检测到URL更改,因此不需要重新加载该组件,但是我希望在网站更改时发生这种情况。或者至少是一种了解网站已更改的方法,以便我可以再次手动调用ajax源。

几周前我才刚刚开始使用vue,但没有找到实现此目的的方法。

1 个答案:

答案 0 :(得分:1)

您可以订阅Vuex突变和操作:https://vuex.vuejs.org/api/#subscribe

在管理仪表板组件的已创建钩子上,假设要注入Vuex商店,则可能会出现以下情况:

created: function() {
    this.unsubscribe = this.$store.subscribe((action, state) => {
        if (action.type === 'changeWebsite') {  // Whatever your action is called
            this.updateWebsiteData(action.payload); // Method to update component data 
        }
    });
},
beforeDestroy: function() {
    this.unsubscribe();
},