vuex使用

在开发项目时候常常会遇到多个组件或者页面同时使用一个变量,这就需要组件之间或者页面之间进行传参,使用可能会存在弊端或缺陷,鉴于此类情况,本人尝试使用vuex进行状态管理。
示例场景如下:
在开发后端管理系统时常常会出现以下场景,有侧边栏组件 comp-aside.vue 和顶部组件com-header.vue,要实现在顶部组件的按钮点击控制侧边栏的展开和收起。

1.安装vuex,执行命令 cnpm install vuex@2 --save ,vuex的版本根据个人项目情况而定,否则会出现错误,我的项目配置情况如下。
在这里插入图片描述

2.在项目的src同级目录创建store文件夹,里面包含index.js和tab.js,并且在main.js中引入
在这里插入图片描述

3.index.js中写入如下代码

import Vue from 'vue'
import Vuex from 'vuex'
import tab from './tab'
Vue.use(Vuex)
export default new Vuex.Store({
	 modules:{
		tab
	 }
})

4.tab.js中写入如下代码

export default{
	state:{
	//定义变量
		isCollapse:true
	},
	mutations:{
		collapseMenu(state){//变量取反方法
			state.isCollapse=!state.isCollapse 
		}
	}
}

5.compaside.vue中在计算属性里面加入isCollapse函数,其中this.$store.state是固定写法,tab是页面名,isCollapse是预先定义的变量

computed: {
			isCollapse(){
				return this.$store.state.tab.isCollapse
			}
		}

html的menu组件绑定对应变量
在这里插入图片描述
6.com-header.vue按钮上绑定如下点击事件,collapseMenu就是在tab.js中定义的变量取反的方法,this.$store.commit是固定写法,用于vuex执行某个方法

 methods:{
		  turnMenu:function(){
			  this.$store.commit('collapseMenu')
		  }
	  }
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值