在vue-element-admin中,如何使用Vuex实现vue父组件中的多个子组件共用和处理同1 个字典变量
时间: 2023-07-14 11:12:02 浏览: 93
学习vue-element-admin,优化了大量融入代码,添加中文注释
在`vue-element-admin`中,使用Vuex实现vue父组件中的多个子组件共用和处理同1个字典变量的步骤如下:
1. 创建Vuex store:
```js
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
const store = new Vuex.Store({
state: {
dictionary: {}
},
mutations: {
updateDictionary(state, payload) {
state.dictionary = payload;
}
}
})
export default store
```
2. 在父组件中使用:
```html
<template>
<div>
<child-component-1></child-component-1>
<child-component-2></child-component-2>
</div>
</template>
<script>
import ChildComponent1 from './ChildComponent1.vue'
import ChildComponent2 from './ChildComponent2.vue'
export default {
name: 'ParentComponent',
components: {
ChildComponent1,
ChildComponent2
},
methods: {
updateDictionary(dictionary) {
this.$store.commit('updateDictionary', dictionary)
}
}
}
</script>
```
3. 在子组件中使用:
```html
<template>
<div>
<button @click="updateDictionary">更新字典</button>
</div>
</template>
<script>
import { mapState } from 'vuex'
export default {
name: 'ChildComponent1',
computed: {
...mapState(['dictionary'])
},
methods: {
updateDictionary() {
const newDictionary = { key: 'value' }
this.$store.commit('updateDictionary', newDictionary)
}
}
}
</script>
```
在这个例子中,我们在Vuex store中创建了一个名为`dictionary`的state,以及一个名为`updateDictionary`的mutation,用于更新`dictionary`的值。在父组件中,我们使用了两个子组件`ChildComponent1`和`ChildComponent2`,并提供了一个名为`updateDictionary`的方法,用于在子组件中更新dictionary的值。在子组件中,我们使用`mapState`将`dictionary`映射到computed属性中,并使用`$store.commit()`方法来调用mutation更新dictionary的值。
这样,我们就可以在vue父组件中的多个子组件共用和处理同1个字典变量了。
阅读全文