解决arco-design路由跳转,menu不激活的问题

2024-03-11 18:20

本文主要是介绍解决arco-design路由跳转,menu不激活的问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

问题

点击【返回】,路由跳转上一层至首页。左侧菜单栏没有实时更新,激活状态有问题。
在这里插入图片描述

解决方法如下,不闪白屏

Main.vue

<template><div class="main"><a-layout class="main-layout"><a-layout-header class="main-layout-header"><TheHeader /></a-layout-header><a-layout><a-layout-sider class="main-layout-sider"><!-- 更新左侧侧边栏 --><TheMenu v-if="isRouterActive" /> </a-layout-sider><a-layout-content class="main-layout-content"><router-view /></a-layout-content></a-layout></a-layout></div>
</template>
<script>
import { provide, nextTick, ref } from "vue";
export default {name: "Main",setup() {// 重新渲染菜单栏状态const isRouterActive = ref(true);provide("reload", () => {isRouterActive.value = false;nextTick(() => {isRouterActive.value = true;});});return {isRouterActive,};},
};
</script>

TheMenu.vue

<!-- 重点看selectedKeys和openKeys的绑定,其他的忽略 -->
<template><div class="the-menu"><a-menu:style="{ width: '200px', height: '100%' }":default-selected-keys="selectedKeys":default-open-keys="openKeys"show-collapse-buttonbreakpoint="xl"@collapse="onCollapse"><template v-for="(menu, index) in menuList" :key="index"><TheMenuItemv-if="menu.meta.mapKey == 1":menuData="menu.children[0]"/><a-sub-menu v-if="menu.meta.mapKey == 2" :key="menu.name"><template #title>{{ menu.meta.title }}</template><TheMenuItem v-for="(v, i) in menu.children" :key="i" :menuData="v" /></a-sub-menu></template></a-menu></div>
</template>
import { reactive, computed, watch, inject } from "vue";
import { appRoutes } from "@/router/addrouter";
import router from "@/router";export default function importConfigFunction() {const reload = inject("reload");const base = reactive({menuList: [],openKeys: [],selectedKeys: [],openKeys: computed(() => {return router.currentRoute.value.meta.mapPath;}),selectedKeys: computed(() => {return router.currentRoute.value.name;}),});watch(() => router.currentRoute.value,(newVal) => {reload();});return {base,};
}

这篇关于解决arco-design路由跳转,menu不激活的问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/798651

相关文章

SpringBoot利用dynamic-datasource-spring-boot-starter解决多数据源问题

《SpringBoot利用dynamic-datasource-spring-boot-starter解决多数据源问题》dynamic-datasource-spring-boot-starter是一... 目录概要整体架构构想操作步骤创建数据源切换数据源后续问题小结概要自己闲暇时间想实现一个多租户平台,

VSCode中C/C++编码乱码问题的两种解决方法

《VSCode中C/C++编码乱码问题的两种解决方法》在中国地区,Windows系统中的cmd和PowerShell默认编码是GBK,但VSCode默认使用UTF-8编码,这种编码不一致会导致在VSC... 目录问题方法一:通过 Code Runner 插件调整编码配置步骤方法二:在 PowerShell

mybatis-plus分页无效问题解决

《mybatis-plus分页无效问题解决》本文主要介绍了mybatis-plus分页无效问题解决,原因是配置分页插件的版本问题,旧版本和新版本的MyBatis-Plus需要不同的分页配置,感兴趣的可... 昨天在做一www.chinasem.cn个新项目使用myBATis-plus分页一直失败,后来经过多方

电脑开机提示krpt.dll丢失怎么解决? krpt.dll文件缺失的多种解决办法

《电脑开机提示krpt.dll丢失怎么解决?krpt.dll文件缺失的多种解决办法》krpt.dll是Windows操作系统中的一个动态链接库文件,它对于系统的正常运行起着重要的作用,本文将详细介绍... 在使用 Windows 操作系统的过程中,用户有时会遇到各种错误提示,其中“找不到 krpt.dll”

Linux虚拟机不显示IP地址的解决方法(亲测有效)

《Linux虚拟机不显示IP地址的解决方法(亲测有效)》本文主要介绍了通过VMware新装的Linux系统没有IP地址的解决方法,主要步骤包括:关闭虚拟机、打开VM虚拟网络编辑器、还原VMnet8或修... 目录前言步骤0.问题情况1.关闭虚拟机2.China编程打开VM虚拟网络编辑器3.1 方法一:点击还原VM

Flask解决指定端口无法生效问题

《Flask解决指定端口无法生效问题》文章讲述了在使用PyCharm开发Flask应用时,启动地址与手动指定的IP端口不一致的问题,通过修改PyCharm的运行配置,将Flask项目的运行模式从Fla... 目录android问题重现解决方案问题重现手动指定的IP端口是app.run(host='0.0.

Android WebView无法加载H5页面的常见问题和解决方法

《AndroidWebView无法加载H5页面的常见问题和解决方法》AndroidWebView是一种视图组件,使得Android应用能够显示网页内容,它基于Chromium,具备现代浏览器的许多功... 目录1. WebView 简介2. 常见问题3. 网络权限设置4. 启用 JavaScript5. D

Seata之分布式事务问题及解决方案

《Seata之分布式事务问题及解决方案》:本文主要介绍Seata之分布式事务问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Seata–分布式事务解决方案简介同类产品对比环境搭建1.微服务2.SQL3.seata-server4.微服务配置事务模式1

mysql关联查询速度慢的问题及解决

《mysql关联查询速度慢的问题及解决》:本文主要介绍mysql关联查询速度慢的问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql关联查询速度慢1. 记录原因1.1 在一次线上的服务中1.2 最终发现2. 解决方案3. 具体操作总结mysql

Python中Windows和macOS文件路径格式不一致的解决方法

《Python中Windows和macOS文件路径格式不一致的解决方法》在Python中,Windows和macOS的文件路径字符串格式不一致主要体现在路径分隔符上,这种差异可能导致跨平台代码在处理文... 目录方法 1:使用 os.path 模块方法 2:使用 pathlib 模块(推荐)方法 3:统一使