十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
实现多组件状态管理,多个组件之间需要数据共享

其中state和mutation是必须的,其他可根据需求来加
1.创建store实例并且导出 store.js
- import Vue from 'vue'
 - import Vuex from 'vuex'
 - Vue.use(Vuex)
 - const store = new Vuex.Store({
 - //声明state
 - state: {
 - userInfo:{ userName:"" }
 - },
 - //声明mutations
 - mutations: {
 - setUserInfo(state,userInfo){
 - state.userInfo = userInfo
 - }
 - },
 - //声明actions
 - actions: {
 - setUserInfo({ commit },userInfo){
 - commit('setUserInfo',userInfo)
 - }
 - },
 - //声明getters
 - getters:{
 - userName(state){
 - return "姓名:"+state.userInfo.userName
 - }
 - }
 - })
 - export default store
 
2.引入Vuex
- import Vue from 'vue'
 - import App from './App.vue'
 - import store from './store'
 - new Vue({
 - render: h => h(App),
 - store
 - }).$mount('#app')
 
使用方式一
{{$store.state.userInfo.userName}}
{{$store.getters.userName}}
存储信息
- export default {
 - methods: {
 - setInfo(){
 - this.$store.commit('setUserInfo',{
 - userName:"鬼鬼"
 - })
 - }
 - }
 - }
 
使用方式二
{{userInfo.userName}}
{{userName}}
存储信息
- import { mapState, mapGetters, mapMutations, mapActions } from 'vuex'
 - export default {
 - methods: {
 - ...mapActions(['setUserInfo']),
 - // ...mapMutations(["setUserInfo"]),
 - setInfo(){
 - this.setUserInfo({
 - userName:"鬼鬼"
 - })
 - },
 - computed: {
 - ...mapState({
 - userInfo: state => state.userInfo
 - }),
 - ...mapGetters(['userName']),
 - }
 - }
 
本文转载自微信公众号「前端人」,作者鬼哥。转载本文请联系前端人公众号。