Я пытаюсь разделить состояние между некоторыми компонентами (подкомпонентами), чтобы каждый подкомпонент (и родительский компонент) мог обновить общее свойство (хранить в состоянии vueX).
Я сделал небольшое "Как воспроизвести" здесь:
Vue.component('urlQueryComponent', {
template: '<div>object: {{pathQuery}}</div>',
computed: {
pathQuery () {
return this.$store.state.urlQuery;
}
}
})
https://codepen.io/anon/pen/rvmLrZ?editors=1010
Проблема в том, что когда я обновляю состояние в подкомпоненте, изменения не обрабатываются.
Экземпляр VueX:
const store = new Vuex.Store({
state: {
urlQuery: {
path: '',
query: {}
}
},
mutations: {
pushQuery: (state, type) => {
state.urlQuery.query[type.key] = type.value;
console.log('urlQuery: ', state.urlQuery);
},
pushPath: (state, path) => {
state.urlQuery.path = path;
}
},
getters: {
getUrlQuery: state => state.urlQuery
}
})
И родительский компонент:
new Vue({
el: '#app',
store,
methods: {
changeType (type) {
this.$store.commit('changeType', type);
}
}
})
EDIT:
После размышления, код, приведенный выше, на самом деле не предназначен для моей проблемы. Эта скрипка больше ориентирована на мою проблему.