折叠使用vuex

13 篇文章 0 订阅
2 篇文章 0 订阅

仅对该 折叠功能 简洁分析过程

main中:

<template>
      <el-container style="height:100%">
        <!-- 侧边栏 -->
        <el-aside width="200px">
          <Aside></Aside>
        </el-aside>
         
        <el-container>
          <el-header>
            <Header></Header>
          </el-header>
          <el-main>
            <router-view></router-view>
          </el-main>
        </el-container>
      </el-container>
</template>

aside中:
el-menu :collapse=“isCollapse”
通过collapse的值选择展开和折叠,在header中通过按钮操作去修改collapse值从而实现展开和折叠。header使用store的mutations去修改state的isCollapse值,所以用computed 计算isCollapse的值,

<el-menu  @open="handleOpen" @close="handleClose" :collapse="isCollapse">
    <h3>{{isCollapse?'后台':'后台管理系统'}}</h3>
     <!-- 只有一级菜单 -->
    <el-menu-item index="1" >
          <template slot="title">
          <i class="el-icon-location"></i>
          <span>导航一</span>
        </template>
    </el-menu-item> 
     <!-- 有二级菜单 -->
    <el-submenu index="2">
        <!-- 先一级菜单 -->
        <template slot="title">
            <i class="el-icon-menu"></i>
            <span slot="title">导航二</span>
        </template>
        <!-- 再二级菜单 -->
        <el-menu-item-group >
            <el-menu-item index="2-1">二级1</el-menu-item>
            <el-menu-item index="2-2">二级2</el-menu-item>
            <el-menu-item index="2-3">二级3</el-menu-item>
            <el-menu-item index="2-4">二级4</el-menu-item>
        </el-menu-item-group>
    </el-submenu>
</el-menu>
</template>

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

header组件中
设置点击按钮对aside进行折叠

 <el-button  @click="handleMenu" ></el-button>

     methods:{
        handleMenu(){
            this.$store.commit('CollapseMenu')
        }
    }

使用vuex

store/index.js

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

store/tab.js

export default{
    state:{
        isCollapse:false
    },
    mutations:{
        CollapseMenu(state){
            state.isCollapse = !state.isCollapse
        }
    }
}

也可以用组件之间通信方式。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值