怎么往this.$store.state存数据
时间: 2023-07-22 07:37:09 浏览: 95
vuex 解决报错this.$store.commit is not a function的方法
在Vuex中,要往`this.$store.state`存储数据,需要通过`mutations`或者`actions`来进行状态管理。
一般来说,`mutations`用于同步修改`state`中的数据,而`actions`则用于异步修改数据。
以下是一个示例,假设我们要往`state`中的`user`属性存储一个`name`字段的值:
1. 在Vuex的store.js文件中,定义一个名为`setName`的`mutation`:
```
// store.js
const store = new Vuex.Store({
state: {
user: {
name: ''
}
},
mutations: {
setName(state, newName) {
state.user.name = newName
}
}
})
```
2. 在组件中,通过`this.$store.commit()`来调用`setName` mutation,存储数据:
```
// component.vue
this.$store.commit('setName', 'John')
```
这样,就可以将`'John'`这个值存储到`state.user.name`属性中了。注意,在mutations中修改state的数据是同步的,只有在mutations中才可以直接修改state中的数据。如果需要异步修改数据,需要使用actions。
阅读全文