【完整项目搭建】基于vue-cli实现vue前端搭建考试系统——⑦项目开发基于vuex实现顶栏组件操控左侧导航栏收起

本文介绍了如何在Vue项目中利用Vuex管理顶栏组件的状态,包括左侧菜单的收起与展开,以及与之相关的样式调整。通过组件化和模块化设计,结合Vue CLI和Vuex 3.x,实现了一键控制菜单折叠的交互效果。
摘要由CSDN通过智能技术生成

1、顶栏常单独形成一个组件,因此在src文件夹下的components文件夹中新建CommonHeader.vue

 相关代码如下:【注意,由于顶栏的左侧区域和右侧区域经常分装,以实现不同功能】

<template>
    <div class="header-container">
        <!-- 顶栏的左侧内容 -->
        <div class="l-content"></div>
        <!-- 顶栏的右侧内容 -->
        <div class="r-content"></div>
    </div>
</template>

<script>
export default {
    data() {
        return {

        }
    }
}

</script>

2、在Main.vue中注册CommonHeader.vue组件并使用

 打开页面,并根据UI修改样式

 

3、下面介绍本节重点:基于Vuex实现顶栏按钮实现左侧导航栏收起

首先进行准备工作,搜索vuex官方文档

 打开官网,选择vuex为3.x版本【本项目基于vue2实现开发】

 Vuex 是 Vue.js 应用程序的状态管理模式 + 库。它充当应用程序中所有组件的集中存储。

4、向项目中引入vuex【注意:一定要确定版本的正确性!可打开npm官网确定vuex的版本号】打开vscode终端,向指定目录下输入如下命令:

npm i vuex@3.6.2

安装完成

在src文件夹下新建store文件夹,创建index.js文件,代码如下:

/* eslint-disable no-unused-vars */
//引入vue和vuex
import Vue from 'vue'
import Vuex from 'vuex'


//将vuex进行全局部署
Vue.use(Vuex)

//创建vuex的示例
//引入tab后,将该实例对外暴露
export default new Vuex.Store({
    modules: {
       
    }
})

//注意,该部分内容最终要由main.js挂载到vue实例上

由于左侧菜单是单独部分的数据,而顶栏也是,因此根据模块化的思想需要将两部分数据进行封装管理,需要再在store文件夹下新建tab.js文件。

 根据【完整项目搭建】④和⑥介绍可知,左侧导航栏菜单的收起是通过操作isCollapse实现的

(62条消息) 【完整项目搭建】基于vue-cli实现vue前端搭建考试系统——④项目开发基于vue-router【嵌套路由】实现导航栏切换效果_小蛋蛋呐的博客-CSDN博客

(62条消息) 【完整项目搭建】基于vue-cli实现vue前端搭建考试系统——⑥项目开发基于实现菜单单击跳转功能_小蛋蛋呐的博客-CSDN博客

 现在需要在CommonHeader组件中点击icon图标,实现左菜单导航栏收起功能,则需在store中的tab.js设置控制菜单收起展开的isCollapse字段,并在CommonAside.vue和CommonHeader.vue组将中进行引用,综上tab.js文件的代码如下:

export default {
    state: {
        //在CommonAside通过操控collapse属性实现左侧菜单导航栏的收起和展开
        //isCollapse是collapse属性的属性值
        isCollapse: false
    },
    mutations: {
        //修改菜单展开收起的方法
        collapseMenu(state) {
            state.isCollapse = !state.isCollapse;
        }
    }
}

 tab.js文件写好后,在store文件夹下的index.js文件中引用

/* eslint-disable no-unused-vars */
//引入vue和vuex
import Vue from 'vue'
import Vuex from 'vuex'
import tab from './tab.js'

//将vuex进行全局部署
Vue.use(Vuex)

//创建vuex的示例
//引入tab后,将该实例对外暴露
export default new Vuex.Store({
    modules: {
        tab
    }
})

//注意,该部分内容最终要由main.js挂载到vue实例上

将vuex实例对外暴露后,还需要在main.js文件中进行挂载

import Vue from 'vue'
import App from './App.vue'

//全局引入element ui
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';

//引入iconfont字体图标
import "./assets/font/iconfont.css"

//引入router
import router from './router'

//引入store
import store from './store'

//对element ui进行全局注册
Vue.use(ElementUI);

Vue.config.productionTip = false

new Vue({
  router,
  store,
  render: h => h(App),
}).$mount('#app')

 在CommonHeader.vue中对应部分定义点击事件handleMenu

 在methods中定义该方法,使用vuex自身的commit方法调用store文件夹下定义的方法

 

在CommonAside.vue组件中获取store中的state,从而获取isCollapse字段

 在template的部分中进行使用

 此时  点击icon图标,即可实现左侧导航栏的收起功能

 解决:顶栏在左侧菜单导航栏收起时自动填充整个顶部,设置el-aside的width为auto

 

 解决:左侧菜单导航栏在搜索时只有字发生变化,注意el-menu不可以设置固定宽度

 

系统是基于Springboot+vue实现的在线考试系统,适合用于毕业设计进行二次开发,也可以作为工作的开发经验。适合刚毕业的大学生和刚入行的初级软件工程师。本课程会讲解常用的Springboot 和Vue知识和搭建环境的过程,让初学者迅速地在本地开发环境搭建起来,成功运行本套代码。迅速的理解前后端开发的过程,能够完成简单的的bug修改,理解前后端的交互。不管你是初入职场或即将进入职场,想深入学习和了解 Spring Boot 框架和 Vue 的话,那这门课几乎是你最好的选择项目前端和后端知识,对于前端开发人员和后端开发人员都是一个很好的学习选择。学生系统功能模块介绍登录用户名、密码注册年级、用户名、密码任务中心管理员发布的年级任务,每个学生只能做一次考试题干支持文本、图片、数学公式、表格等,学生答题支持:文本固定试卷可重复练习、自行批改的试卷时段试卷在时间限制内,可重复练习、自行批改的试卷考试记录查看答卷记录和试卷信息错题本答错题目会自动进入错题本,显示题目基本信息个人信息显示学生个人资料更新信息修改个人资料、头像个人动态显示用户最近的个人动态消息中心用于接收管理员发送的消息管理系统功能模块介绍登录用户名、密码主页试卷总数、题目总数、用户活跃度、题目月数量学生列表显示系统所有的学生,新增、修改、删除、禁用管理员列表显示系统所有的管理员,新增、修改、删除、禁用学科列表学科查询、修改、删除学科创编创建学科试卷列表试卷查询、修改、删除试卷创编创建的试卷为时段试卷、固定试卷、任务试卷题目列表题目查询、修改、删除题目创建题目支持单选题、多选题、判断题、填空题、简答题,题干支持文本、图片、表格、数学公式任务列表任务查询、修改、删除消息列表显示已发送的消息,消息已读人数等信息消息发送发送消息给多个用户用户日志显示所有用户日志个人资料显示管理员用户名、真实姓名时间线显示管理员创建时间修改资料修改姓名、手机号项目架构项目展示  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值