解决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

相关文章

IDEA和GIT关于文件中LF和CRLF问题及解决

《IDEA和GIT关于文件中LF和CRLF问题及解决》文章总结:因IDEA默认使用CRLF换行符导致Shell脚本在Linux运行报错,需在编辑器和Git中统一为LF,通过调整Git的core.aut... 目录问题描述问题思考解决过程总结问题描述项目软件安装shell脚本上git仓库管理,但拉取后,上l

解决docker目录内存不足扩容处理方案

《解决docker目录内存不足扩容处理方案》文章介绍了Docker存储目录迁移方法:因系统盘空间不足,需将Docker数据迁移到更大磁盘(如/home/docker),通过修改daemon.json配... 目录1、查看服务器所有磁盘的使用情况2、查看docker镜像和容器存储目录的空间大小3、停止dock

Spring Gateway动态路由实现方案

《SpringGateway动态路由实现方案》本文主要介绍了SpringGateway动态路由实现方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随... 目录前沿何为路由RouteDefinitionRouteLocator工作流程动态路由实现尾巴前沿S

idea npm install很慢问题及解决(nodejs)

《ideanpminstall很慢问题及解决(nodejs)》npm安装速度慢可通过配置国内镜像源(如淘宝)、清理缓存及切换工具解决,建议设置全局镜像(npmconfigsetregistryht... 目录idea npm install很慢(nodejs)配置国内镜像源清理缓存总结idea npm in

pycharm跑python项目易出错的问题总结

《pycharm跑python项目易出错的问题总结》:本文主要介绍pycharm跑python项目易出错问题的相关资料,当你在PyCharm中运行Python程序时遇到报错,可以按照以下步骤进行排... 1. 一定不要在pycharm终端里面创建环境安装别人的项目子模块等,有可能出现的问题就是你不报错都安装

idea突然报错Malformed \uxxxx encoding问题及解决

《idea突然报错Malformeduxxxxencoding问题及解决》Maven项目在切换Git分支时报错,提示project元素为描述符根元素,解决方法:删除Maven仓库中的resolv... 目www.chinasem.cn录问题解决方式总结问题idea 上的 maven China编程项目突然报错,是

在Ubuntu上打不开GitHub的完整解决方法

《在Ubuntu上打不开GitHub的完整解决方法》当你满心欢喜打开Ubuntu准备推送代码时,突然发现终端里的gitpush卡成狗,浏览器里的GitHub页面直接变成Whoathere!警告页面... 目录一、那些年我们遇到的"红色惊叹号"二、三大症状快速诊断症状1:浏览器直接无法访问症状2:终端操作异常

mybatis直接执行完整sql及踩坑解决

《mybatis直接执行完整sql及踩坑解决》MyBatis可通过select标签执行动态SQL,DQL用ListLinkedHashMap接收结果,DML用int处理,注意防御SQL注入,优先使用#... 目录myBATiFBNZQs直接执行完整sql及踩坑select语句采用count、insert、u

Python爬虫HTTPS使用requests,httpx,aiohttp实战中的证书异步等问题

《Python爬虫HTTPS使用requests,httpx,aiohttp实战中的证书异步等问题》在爬虫工程里,“HTTPS”是绕不开的话题,HTTPS为传输加密提供保护,同时也给爬虫带来证书校验、... 目录一、核心问题与优先级检查(先问三件事)二、基础示例:requests 与证书处理三、高并发选型:

前端导出Excel文件出现乱码或文件损坏问题的解决办法

《前端导出Excel文件出现乱码或文件损坏问题的解决办法》在现代网页应用程序中,前端有时需要与后端进行数据交互,包括下载文件,:本文主要介绍前端导出Excel文件出现乱码或文件损坏问题的解决办法,... 目录1. 检查后端返回的数据格式2. 前端正确处理二进制数据方案 1:直接下载(推荐)方案 2:手动构造