在Vuex中使用Vue.js我想在状态中的methode
属性更改时调用一个函数。我是通过https://stackoverflow.com/a/44347195/6485328的方式实现的。
我的代码:
Vuex商店
export const contentStore = new vuex.Store({
state: {
methode: "",
count: 1
},
mutations: {
selectMethode(state, value){
vue.set(state, "methode", value)
},
increment(state) {
state.count++
}
}
})
组件js
import { contentStore } from "../../../contentstore.js"
export default {
data: function (){
return {
}
},
methods: {
},
computed: {
count () {
console.log("count computed")
return contentStore.state.count
},
methode () {
console.log("methode computed")
return contentStore.state.methode
}
},
watch: {
count (val) {
console.log("count watch")
},
methode (val) {
console.log("methode watch")
}
}
}
观察:
每次调用/提交increment
时,都会立即记录"count computed"
和"count watch"
。
每当调用/提交selectMethode
时,就会记录"methode computed"
(可能是因为在HTML中使用了methode
)。 "methode watch"
永远不会出现。
methode
上的观察者为什么不像count
上的观察者那样工作?