Vue学习-增删改操作菜单数据时左侧菜单栏动态更新

10分钟快速上手若依(Ruoyi-Vue):Spring Boot+Vue后台管理系统实战指南 在企业级应用开发中,权限管理系统是支撑业务安全与模块化开发的核心基础设施。其原理通常基于RBAC(基于角色的访问控制)模型,通过用户、角色、权限的关联实现细粒度的访问控制。这一技术价值在于能极大提升开发效率,保障系统安全,是构建后台管理、OA系统、CRM等场景的通用解决方案。本文聚焦于若依(Ruoyi)这一集成了Spring Boot、Vue和Element UI的流行开源框架,它内置了完整的权限管理、代码生成器等模块,实现了开箱即用。通过实战演示,读者可快速掌握其环境搭建、数据库配置与核心功能,特别是其强 阅读详情

前言

当管理员角色对菜单数据进行增删改操作时,要求左侧菜单栏动态更新。

思路:增删改时重新获取菜单并重新添加菜单路由以及将菜单数据存入vuex,利用vuex的数据变更具有实时性的特点进行实现。

一、以新增菜单为例

这里获取到后台返回的操作结果后进行重新获取菜单并添加路由的操作

submitAdd() {
      this.$refs.formAdd.validate((valid) => {
        if (valid) {
          this.submitLoading = true;
          insertSysMenu(this.formAdd).then((res) => {
            this.submitLoading = false;
            if (res.code) {
              this.$Message.success(res.msg);
              //重新获取菜单并添加路由
              util.findMenuData();
              
              this.menuModalVisible = false;
            }
          });
        }
      });
    }

二、重新获取菜单并重新添加菜单路由以及将菜单数据存入vuex

util.findMenuData = function(){
  findAllMenuTree().then((res)=>{
    //console.log("菜单树===>"+JSON.stringify(res));
    if(res.code == 200){
      //将获取的菜单数据放入localStorage中备用(处理刷新页面路由丢失的问题)
      store.commit("users/setMenu", {
          menuData: res.result
       });
       let menuRoutes = [];
       menuRoutes = util.initMenu(menuRoutes,res.result);
       //将获取到的菜单数据重新添加到路由并存入vuex
       store.commit('users/updateRouter',menuRoutes);
    }
  })
  .catch(err =>{
      console.log("获取菜单数据报错=="+err);
  })
}

// 生成路由节点
util.initMenu = function(menuRoutes,menuData){
    for(var item of menuData){
      //将item复制到空对象中,再复制给menu,等于重新new了一个新的含有item属性并且有属性值的对象
      let menu = Object.assign({}, item);
      if(null != menu.component){
        //console.log("menu.component=="+menu.component);
        //menu.component = import(`@/views/${menu.component}.vue`);
        //不采用异步component组件值无法进行封装,原因不清楚
        menu.component = lazyLoading(menu.component);//异步
      }else{
        //如果父级菜单没有component组件,则默认放置{render: (e) => e("router-view")},否则将无法进行子菜单跳转
        menu.component = {render: (e) => e("router-view")};
      }
      if(item.children && item.children.length >0){
          menu.children = [];
          this.initMenu(menu.children,item.children);
      }
      //浏览器信息:浏览器标题,第三方网页链接地址
      let meta = {};
      meta.title = menu.title ? menu.title : null;
      meta.url = menu.url ? menu.url : null;
      menu.mate = meta;
      menuRoutes.push(menu);
    }
    return menuRoutes;
}

//注: store.js
state: {
  routers: []
},
mutations: {
     setMenu(state,{menuData}){
      //刷新页面localStorage缓存数据不丢失
      localStorage.setItem("menuData",JSON.stringify(menuData));
     },
    // 动态添加主界面路由
    updateRouter(state,routes) {
      //...代表存入数组
      state.routers = routes;
      router.addRoutes(routes);
    }
}

三、菜单渲染

initMenuData(){
	//利用的vuex的数据变更具有实时性的特点
    this.menuList = this.$store.state.users.routers;
}
<Menu ref="side_menu" :active-name="childActiveMenu" theme="dark" width="auto" :open-names="[parentActiveMenu]" accordion @on-select="m=>{select(m)}">
   <!--Submenu 一级菜单-->
   <Submenu v-for="pmenu in menuList" :name="pmenu.id" :key="pmenu.id">
      <template slot="title">
          <Icon :type="pmenu.icon"></Icon>
          {{pmenu.title}}
      </template>
      <MenuItem v-for="cmenu in pmenu.children" :name="cmenu.path" :key="cmenu.path">
          <Icon :type="cmenu.icon"></Icon>
          {{cmenu.title}}
      </MenuItem>
   </Submenu>
</Menu>
10分钟上手若依:Spring Boot+Vue前后端分离权限管理系统快速入门 在企业级应用开发中,权限管理系统是构建后台管理平台的核心基础组件。其原理通常基于RBAC(基于角色的访问控制)模型,通过用户、角色、权限的关联实现精细化的访问控制。这一技术价值在于能大幅提升开发效率,保障系统安全,是快速搭建后台系统的基石。常见的应用场景包括企业内部管理系统、SaaS平台后台、数据中台等。本文以热门的开源项目【若依】为例,结合【代码生成器】这一高效工具,演示如何快速搭建一个具备完整权限管理功能的前后端分离系统,帮助开发者快速实现从环境配置到业务功能上线的全流程。 阅读详情

相关推荐

SpringBoot+Vue仓库管理系统实战:从零部署到核心代码解析

企业级应用开发中,前后端分离架构已成为主流范式,它通过清晰的职责划分提升了开发效率和系统可维护性。其核心原理在于后端专注于提供RESTful API处理业务逻辑与数据持久化,前端则负责用户界面与交互,两者通过HTTP协议进行数据通信。这种模式的技术价值在于支持团队并行开发、便于技术栈选型以及增强系统的可扩展性。在诸如电商后台、OA系统、**仓库管理系统(WMS)** 等各类管理平台中广泛应用。本文聚焦于一个采用 **SpringBoot** 与 Vue 实现的完整仓库管理系统开源项目,详细拆解其环境搭建、部

weixin_33860553的博客 402

vue3 菜单刷新

menu菜单刷新

m0_59093019的博客 399

vue3+ant-design-vue - 最新实现“侧边动态导航栏+面包屑导航“功能,vue3+ant后台管理系统左侧动态菜单栏和面包屑菜单实现,面包屑和菜单根据路由动态自动处理(详细示例代码)

vue3,ant-design-vue,antd,el-breadcrumb,a-menu,动态导航栏和面包屑,vue3+ant design vue动态面包屑,动态导航栏,菜单栏,vue3监听路由变化,动态修改面包屑,antd-vue3实现面包屑,vue3中使用antd-vue实现面包屑导航,头部面包屑导航,vue后台管理系统,面包屑头部导航栏,详细示例demo,动态生成面包屑导航教程,新手小白详细示例,面包屑和布局和菜单demo,面包屑和导航菜单的联动,如何跟随路由变化,监听路由变化,动态修改面包屑,v

✅ 精选推荐文章 1万+

Vue 商品分类模块(添加+修改+删除分类)

添加分类的对话框 <el-row> <el-col> <el-button type="primary" @click="showAddDialog">添加分类</el-button> </el-col> </el-row> <!-- 添加分类的对话框--> <el-dialog title="添加分类" :visible.sync="add

weixin_47906106的博客 2028

SpringBoot+Vue人事系统实战:从CRUD到真实业务落地

人事管理系统是企业组织运转的神经中枢,其核心远不止于增删改查(CRUD)——它涉及考勤对接、个税合规、审批留痕、资产回收等高耦合业务逻辑。理解SpringBoot与Vue的协同本质,关键在于厘清前后端职责边界:Vue承担基础校验与高性能渲染(如千人花名册虚拟滚动),SpringBoot聚焦业务规则与数据一致性(如ABAC动态权限、合同提醒状态机)。技术选型的价值,在于支撑真实场景下的健壮性:Excel脏数据兼容、跨域与防火墙适配、多通道通知集成、生产级部署配置。当系统能稳定承载HR每日高频操作,技术才真正完

weixin_30582943的博客 284

vue+iview框架实现左侧动态菜单功能的示例代码

最近在使用vue-cli3配合iview框架搭建新的项目中用到了iview中的menu菜单,按照官网写法固定不太好,因为一般项目都是从后端动态获取菜单列表,所以我们需要将官网代码稍作修改,代码如下: 注意事项: 【1】菜单高亮部分动态绑定路由跳转的页面 Menu组件中有一个active-name反映的是当前高亮区域,因此可以动态的绑定active-name来实现高亮显示。前提是需要将MenuItem绑定的name也设置成页面路由的name 【2】动态获取菜单数据,需要更新菜单 this.$nextTick(() => { this.$refs.side_menu.updateOpen

若依框架登录后跳转其他页面&获取不同的菜单&登录进入后跳转至动态路由的第一个路由

若依框架登录后跳转其他页面, 获取不同的菜单 登录进入后跳转至动态路由的第一个路由, 设置默认首页

song_song0927的博客 2万+

Dify工作流构建案例:迭代驱动的多维深度搜索

为了克服这些挑战,我们可以设计一个能够智能协同内部知识库与外部互联网搜索,并最终由大型语言模型(LLM)进行深度整合与精准回答的高级工作流。

同名公众号:dify实验室 2291

vue grid 操作

index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>Move Animations</title> <style> .container { position: relative; padding: 0; } .i..

kwame211的博客 1110

翁恺-C语言程序设计 PTA习题集

代码练习题

qq_46085472的博客 7639

10xGenomics官方可视化工具——Loupe Browser

Loupe Browser是⼀款10xGenomics开发的交互式桌⾯应⽤程序,⽤于探索10x单细胞数据,可以用来找出感兴趣的细胞、找出显著差异表达的基因、鉴定细胞类型、探索细胞亚类和数据共享。

weixin_47195452的博客 3346

python权限管理系统_vue权限管理系统

vue权限系统后台管理系统一般都会有权限模块,用来控制用户能访问哪些页面和哪些数据接口。大多数管理系统的页面都长这样。下面预览图是我写的一个后台管理系统,源码请点击链接 vuets-iview-admin 技术栈 - vue+typescript+iview左边为菜单,分为两级,右边为图表显示区域,有增删改查的按钮。表的结构SET NAMES utf8mb4;SET FOREIGN_KEY_CH...

weixin_39862794的博客 364

手把手教你用LTspice仿真TVS二极管:从选型验证到波形分析全流程

本文详细介绍了如何使用LTspice仿真TVS二极管,从选型验证到波形分析的全流程。通过搭建仿真环境、核心参数验证和系统级防护策略,帮助工程师低成本评估TVS性能,优化电路设计。特别适用于电源设计和接口防护领域,提升工作效率和设计准确性。

weixin_29234239的博客 643

oj在线判题系统----创建通用布局

Action(支持异步):执行异步操作,并且触发mutation的更改(action调用mutation)本质上:给你提供了一套增删改查全局变量的API,只不过可能多了一些功能(如时间旅行)首先点击菜单项==>跳转更新路由==>更新路由后,同步去更新菜单栏的高亮状态。Mutation(尽量同步):定义了对变量进行增删改(更新)的方法。把菜单上的路由改成读取路由文件,实现更通用的动态配置。所有页面全局共享的变量,而不是局限在某一个页面中。State:存储的状态信息,比如用户信息。引入时钟成功显示出来!

m0_69435612的博客 1049

AI硬件加速:CPU vs GPU性能对比

AI硬件加速:CPU vs GPU性能对比 关键词:人工智能、硬件加速、CPU、GPU、性能对比、硬件架构、并行计算、优化策略、项目实战 摘要: 本文将深入探讨AI

AI天才研究院 1913

AutoSAR系列讲解 - 前言

博主xyfx是一名汽车行业的嵌入式软件工程师,本职工作是同步电机的驱动控制(主要做FOC的,这个大家要是有兴趣,以后可以单独开一个专栏来讲解一下),由于做控制器的时候需要用到AutoSAR,所以特意的去学习了相关知识,同时博主自己也在同步提高中,有写的不合理的地方也请大家指正。我准备对AutoSAR开设两个大的方面来讲解,一是AutoSAR的入门篇,二是AutoSAR的实践篇,分别讲述AutoSAR的理论基础和工具的使用。

雪云飞星的博客 4万+

vue引入id3_Vue 后台管理项目13-权限管理实现

权限管理实现1.角色列表页1.1 完成roles组件静态布局Elemenet组件 Table 表格 展开行:通过设置 type="expand" 和 Scoped slot 可以开启展开行功能,el-table-column 的模板会被渲染成为展开行的内容,展开行可访问的属性与使用自定义列模板时的 Scoped slot 相同。传送门http://element-cn.eleme.io/#/zh-...

weixin_39955149的博客 205

数字IC/FPGA 秋招知识点不全面整理

数字IC/FPGA 秋招知识点不全面整理

w0shishabi的博客 7866

还在用老掉牙的后台模板?来试试这款人类高质量后台模板(Admin Plus)

相信很多的前端小伙伴都有过和我一样的烦恼,就是要写很多很多的xx后台管理系统,写这个系统的时候就无可厚非需要去使用到后台管理系统的模板,但是目前市面上主流的开源的后台管理系统的模板存在以下几个问题,都是我本人亲自使用感觉出来的,有同感的小伙伴可以把公屏打在同感上。 首先是模板老旧,确实是有很多很经典也很稳定的后台管理系统模板,但是无可奈何他们太丑了,是上世纪七八十年代的审美标准,完全不符合现在21世纪最新审美标准,给人一种看起来很过时的感觉,不信你看看? 第二个是虽然他是扁平化也是最新的UI设计,确实也

XiaoLin 2748

基于VLFM的中文指令视觉语言导航系统设计与实现

文章摘要 本文介绍了一个基于VLFM(视觉语言边界地图)的中文指令视觉语言导航系统设计与实现。该系统采用模块化架构,包含三维场景渲染、URDF机器人仿真、VLFM导航引擎、中文指令解析和PyQt图形界面五大核心模块。系统支持自定义GLB场景模型和URDF机器人模型,通过transformers和langchain实现中文自然语言指令解析,利用VLFM算法进行语义导航决策。技术实现上详细介绍了GLB模型加载器开发、URDF机器人控制、VLFM导航算法集成以及PyQt界面设计。该系统在Ubuntu环境下运行,依

AI的内部世界的博客 205

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

5小时学会Vue3:从零基础到跑通项目的实操学习路线

Vue3作为现代前端开发的主流JavaScript框架,以其响应式数据绑定和组合式API深受开发者青睐。对于零基础学习者而言,掌握Vue3的核心在于理解数据驱动页面的原理,并熟悉ref、reactive、computed、watch等基础API。本文从环境搭建、模板语法、组件通信、路由配置到Pinia状态管理,梳理了一条可验证的5小时入门路径。通过实际项目练习,学习者能快速掌握Vue Router的页面跳转、axios请求封装以及Element Plus组件库的使用,从而具备独立开发后台管理系统或商城项目的

weixin_33924220的博客 491

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

基于VUE的体育赛事管理系统[VUE]-计算机毕业设计源码+LW文档

摘要:本文设计并实现了一个基于Vue.js和SpringBoot的体育赛事管理系统,采用前后端分离架构。系统包含赛事管理、用户权限控制、报名审核、成绩统计等功能模块,通过Vue的响应式特性和ElementUI组件提升交互体验,结合MySQL数据库确保数据安全。测试表明系统能有效简化赛事管理流程,提升运营效率。未来可扩展移动端支持和智能数据分析功能。关键词:Vue.js;赛事管理;前后端分离;响应式设计。

QQ375279829的博客 641

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

【web】课程设计报告 + 视频介绍

随着移动互联网的普及,餐饮行业的点餐方式正在发生变革。传统纸质菜单存在更新不便、信息滞后等问题,而第三方外卖平台对小商家存在抽成压力。因此,开发一套轻量级、自部署的餐厅点餐管理系统具有一定的实用价值。本次课程设计选择“餐厅点餐管理”作为开发主题,一方面是因为该场景贴近日常生活,需求清晰明确;另一方面,该场景能够覆盖Web应用开发中的核心功能模块——用户认证、数据增删改查、前后端交互、文件上传、动态内容管理等,适合作为课程综合实践的载体。

2501_92564759的博客 196

Vue 3 中集成 mxGraph 图形库:从原理到工程实践

在 Web 前端开发中,数据可视化与交互式图形编辑是构建复杂应用(如工作流设计器、网络拓扑工具)的核心需求。其技术原理通常涉及将图形库的底层渲染引擎与现代前端框架的响应式系统相结合,以实现高效、可维护的图形界面。mxGraph 作为一个专注于交互式图形编辑的 JavaScript 库,其技术价值在于提供了强大的节点、边操作和布局能力,是构建类 Visio 或 diagrams.net 应用的底层引擎。在 Vue.js 这类声明式框架中集成 mxGraph,主要挑战在于协调其命令式的 DOM 操作与 Vue

weixin_30603633的博客 361

前、后端分离权限控制设计和实现思路

点击上方“Java基基”,选择“设为星标”做积极的人,而不是积极废人!每天14:00更新文章,每天掉亿点点头发...源码精品专栏原创 | Java 2021超神之路,很肝~中文详细...

weixin_44421461的博客 213

SpringBoot+Vue健身房管理系统:从零部署到二次开发全指南

前后端分离架构是现代Web应用开发的主流模式,它将用户界面(前端)与业务逻辑和数据(后端)解耦,通过API进行通信。其核心原理在于前端框架(如Vue.js)负责渲染和交互,后端框架(如SpringBoot)提供RESTful API处理请求和数据库操作。这种架构的技术价值在于提升了开发效率、便于团队协作,并增强了系统的可维护性和可扩展性。在应用场景上,它广泛适用于各类管理后台、电商平台及企业级应用。本文聚焦于一个典型的**SpringBoot**与**Vue**技术栈实践案例——健身房管理系统,详细解析其环

373
上一篇: Vue学习-刷新界面动态路由丢失
下一篇: @Accessors注解实现链式编程
Java_Scholar0
博客等级 码龄9年 104粉丝 55原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值