在组件中使用watch监听store子模块的变化
时间: 2024-03-21 12:42:44 浏览: 50
vue实现从外部修改组件内部的变量的值
在组件中监听 store 子模块的变化,你可以使用 Vue 提供的 `watch` 方法来实现。首先,你需要使用 `mapState` 辅助函数来获取子模块的 state,然后使用 `watch` 方法来监听该 state 的变化。
举个例子,假设你有一个名为 `user` 的子模块,你可以这样实现监听:
```js
// 在组件中
import { mapState } from 'vuex'
export default {
computed: {
...mapState('user', {
userState: state => state.user
})
},
watch: {
userState: {
handler: function(newVal, oldVal) {
console.log('User module state changed:', newVal)
},
deep: true
}
}
}
```
在上面的代码中,我们使用 `mapState` 辅助函数来获取 `user` 模块的 state,并将其映射到 `userState` 计算属性中。然后,我们使用 `watch` 方法来监听 `userState` 的变化,并在回调函数中打印出当前的 `userState`。注意,我们需要将 `deep` 选项设置为 `true`,以便能够监听子对象的变化。
这样,当 `userState` 发生变化时,回调函数就会被触发,你就可以在其中执行你想要的操作了。
阅读全文