vuex里的set值怎么获取
时间: 2023-10-06 11:05:12 浏览: 34
在 Vuex 中,当你使用 `commit` 或 `dispatch` 方法来触发 mutation 或 action 时,你可以传递一个参数作为 payload,该 payload 将会作为第二个参数传递给 mutation 或 action。因此,在 mutation 或 action 中,你可以通过第二个参数来获取 payload,从而获取 set 值。
例如,在 mutation 中,你可以这样获取 set 值:
```javascript
mutations: {
SET_VALUE(state, payload) {
state.value = payload;
}
}
```
这里的 `payload` 就是你在调用 `commit` 方法时传递的 set 值。在 action 中也是类似的。
另外,如果你想获取 Vuex 中某个 state 的值,你可以通过 `this.$store.state.xxx` 来获取,其中 `xxx` 是你想获取的 state 的名称。例如:
```javascript
computed: {
value() {
return this.$store.state.value;
}
}
```
这里的 `value` 就是 Vuex 中的 state,你可以在组件中通过 `this.value` 来获取它的值。
相关问题
uniapp修改vuex里面的值
要修改 Vuex 中的值,需要使用 mutations 来进行操作。以下是步骤:
1. 在 Vuex store 的 index.js 文件中,定义一个 mutations 对象,例如:
```
const mutations = {
SET_VALUE(state, payload) {
state.value = payload
}
}
```
其中,SET_VALUE 是一个 mutation 的名称,state 是 Vuex 的状态对象,payload 是传递给 mutation 的参数。
2. 在组件中,使用 mapMutations 将 mutations 映射到组件的 methods 中,例如:
```
import { mapMutations } from 'vuex'
export default {
methods: {
...mapMutations([
'SET_VALUE'
]),
setValue(value) {
this.SET_VALUE(value)
}
}
}
```
其中,SET_VALUE 是在 mutations 中定义的 mutation 的名称,setValue 是一个自定义的方法,用于调用 SET_VALUE 这个 mutation。
3. 在组件中,调用 setValue 方法来触发 SET_VALUE 这个 mutation,例如:
```
<template>
<div>
<button @click="setValue('new value')">修改值</button>
</div>
</template>
```
其中,点击按钮会调用 setValue 方法,并传递一个参数 'new value',这个参数会作为 payload 传递给 SET_VALUE 这个 mutation,从而修改 Vuex 中的值。
以上就是修改 Vuex 中的值的步骤,希望能对你有帮助。
模块化vuex怎么获取模块里面的值
在使用模块化的 Vuex 中,获取模块里面的值需要使用模块命名空间(module namespace)。
在定义模块时,可以通过 `namespaced: true` 开启模块命名空间,这样在获取模块内部的状态、getters、mutations、actions 时,就需要加上模块的命名空间。
举个例子,假设我们有一个 `user` 模块,其中定义了一个 `state`:
```javascript
// user.js
export default {
namespaced: true,
state: {
name: '小明',
age: 18
}
}
```
如果要在另一个模块中获取 `user` 模块的 `name` 值,可以这样写:
```javascript
// other.js
export default {
computed: {
userName() {
return this.$store.state.user.name
}
}
}
```
但是在使用模块命名空间后,就需要添加模块命名空间前缀:
```javascript
// user.js
export default {
namespaced: true,
state: {
name: '小明',
age: 18
}
}
// other.js
export default {
computed: {
userName() {
return this.$store.state.user.name // 错误,需要加上模块命名空间前缀
// return this.$store.state['user'].name // 正确的方式
}
}
}
```
如果需要在 getters、mutations、actions 中访问模块内部的状态和其他函数,也需要加上模块命名空间前缀,例如:
```javascript
// user.js
export default {
namespaced: true,
state: {
name: '小明',
age: 18
},
getters: {
getNameAndAge(state) {
return `${state.name} - ${state.age}`
}
},
mutations: {
setName(state, newName) {
state.name = newName
}
},
actions: {
changeName({ commit }, newName) {
commit('setName', newName)
}
}
}
// other.js
export default {
computed: {
nameAndAge() {
return this.$store.getters['user/getNameAndAge'] // 获取 user 模块的 getters
}
},
methods: {
changeName(newName) {
this.$store.commit('user/setName', newName) // 调用 user 模块的 mutation
this.$store.dispatch('user/changeName', newName) // 调用 user 模块的 action
}
}
}
```
以上就是在模块化 Vuex 中获取模块里面的值的方法。