v2通过computed拿到的store的值不能赋值
时间: 2024-11-30 15:14:22 浏览: 4
vue 数组和对象不能直接赋值情况和解决方法(推荐)
v2中的 Vue.js 应该是指Vue 2.x版本,它使用的是计算属性(Computed)来处理数据的计算和依赖。当你在计算属性中尝试从 Vuex store 中获取数据,然后直接赋值给组件的某个数据属性,可能会遇到一些限制。
首先,计算属性本身不会直接修改store的数据状态,它们只是基于其依赖的数据读取并返回结果。如果你想改变store的状态,应该在合适的时机(如事件回调、methods函数等)使用`this.$store.commit()`或`this.$store.dispatch()`方法来触发mutations或actions。
例如:
```javascript
// 在计算属性中访问store
export default {
computed: {
myDataFromStore () {
return this.$store.state.myState;
}
},
methods: {
updateStoreValue() {
// 在这里更新store
this.$store.commit('UPDATE_VALUE', newValue);
}
}
}
```
如果直接在计算属性里赋值,可能会导致预期之外的结果,因为计算属性并没有更改底层数据源的能力,这样做通常是违反了单向数据流原则。
阅读全文