vue状态管理,配置vuex

Vue项目中经常会有对状态的控制操作,那么如何合理的封装使用呢?

main.js 引入store
//main.js
import store from './store';

const app =  new Vue({
  router,
  store,
  ...
})

创建store文件夹,新建index、rootState、getters、actions、mutations文件
├── src
│   ├── main.js
│   └── store
│         |——index.js
│         |——rootState.js
│         |——getters.js
│         |——actions.js
│         |——mutations.js
|——index.html
index.js文件
 // 文件都会汇聚到这个地方来,也是创建store对象的地方,就像store的入口一样
 //index.js
 
 import Vue from 'vue';
 import Vuex from 'vuex';
 import * as actions from './actions';
 import * as mutations from './mutations';
 import * as getters from './getters';
 import state from './rootState';
 Vue.use(Vuex)
 const store = new Vuex.Store({
   state,
   getters,
   actions,
   mutations
 })
 export default store;
rootState.js文件
//rootState.js

const state = {
  userName   	: ''
}
export default state;

getters.js文件
//getters.js

export const userName      = state => state.userName;

mutations.js文件
//mutations.js

export const setUserName = (state, payload) => {
  state.userName = payload.userName;
}
actions.js文件
//actions.js

export const setUserName = ({commit},userName) => {
  commit({
    type: 'setUserName', 
    userName
  });
};
使用 vuex,引入示例:
<template>
  <section class="wrap">
	引用vuex--userName的值为:{{userName}}
  </section>
</template>

<script>
import {mapGetters} from 'vuex'
export default {
  data () {
    return {
    }
  },
  computed:{
		...mapGetters(['userName'])
   }
}
</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值