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

news2024/11/16 19:58:13

问题

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

解决方法如下,不闪白屏

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-button
      breakpoint="xl"
      @collapse="onCollapse"
    >
      <template v-for="(menu, index) in menuList" :key="index">
        <TheMenuItem
          v-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,
  };
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1509925.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CH343 使用USB转串口发送CAN报文

文章目录 原启UART 走CAN收发器CH343 模拟CAN发送CPP ASIO SocketCANVXCANGithub Link 原启 早些年自动驾驶激光雷达还不支持PTP之类的时间同步, 很多都是用PPS时间同步, 激光雷达一般装的离控制器或者GNSS天线较远, 车上的线束一般数据电源各种都包在一起的, 如果3.3V直接从域…

私立医院的革命者:大数据解决方案全面解析

第一部分&#xff1a;背景 在信息化飞速发展的今天&#xff0c;医疗行业正经历着一场深刻的数字化转型。特别是对于私立医院来说&#xff0c;要在这个变革的浪潮中立于不败之地&#xff0c;就必须拥抱新技术&#xff0c;优化服务流程&#xff0c;提高医疗质量。大数据技术&…

Python教程-SchemDraw绘制电路图

电路图是电子工程师和电子爱好者的重要工具&#xff0c;用于图形化表示电子元件之间的连接关系。在Python中&#xff0c;有许多库可以用于绘制电路图&#xff0c;其中之一就是SchemDraw。本文将介绍如何使用SchemDraw库&#xff0c;通过简单的Python代码绘制出清晰、美观的电路…

力扣 617-合并二叉树

二叉树使用递归&#xff0c;就要想使用前中后哪种遍历方式&#xff1f; 本题使用哪种遍历都是可以的&#xff01; 我们下面以前序遍历为例。 那么我们来按照递归三部曲来解决&#xff1a; 确定递归函数的参数和返回值&#xff1a; 首先要合入两个二叉树&#xff0c;那么参…

学习java第二天

一.注释 单行注释&#xff1a; // 这是一个单行注释 int x 10; // 初始化一个变量x为10 多行注释&#xff1a; /* 这是一个多行注释 可以用来注释多行代码 */ int y 20; // 初始化一个变量y为20 文档注释&#xff1a; /* 这是一个多行注释 可以用来注释多行代码 */ int…

51单片机基础篇系列-LED灯点亮代码部分

&#x1f308;个人主页: 会编辑的果子君 &#x1f4ab;个人格言:“成为自己未来的主人~” #include<reg52.h> //包含单片机内部寄存器 void main() //&#xff08;&#xff09;{P10xfe;//1111 1110while(1); // } 上面是第一个 LED实验 #include<reg52.h>…

PythonWeb——Django框架

框架介绍 1.什么是框架? 框架就是程序的骨架&#xff0c;主体结构&#xff0c;也是个半成品。 2.框架的优缺点 可重用、成熟,稳健、易扩展、易维护 3.Python中常见的框架 大包大揽 Django被官方称之为完美主义者的Web框架。力求精简web.py和Tornado新生代微框架Flask和B…

GEE python高阶——如何使用geemap和eemont包基于MODIS影像计算GNDVI,NBR,NDWI指数并可视化(山西省太原市为例)

这里我们进行使用geemap和eemont包基于MODIS影像计算GNDVI,NBR,NDWI指数&#xff0c;这里很方便的省去了计算指数、去云和缩放等功能&#xff0c;非常方便。 简介 GNDVI (Green Normalized Difference Vegetation Index)是一种用于评估植被覆盖状况的指数。它是通过测量红光波…

iconfont 字体应用

1、登录 打开阿里图标 https://www.iconfont.cn/ 2、选择心仪的图标制作 iconfont 字体。 3、图标全部选择入库之后&#xff0c; 点右上角的购物车。 添加到项目&#xff0c;是方便管理图标字体的。 也可以直接下载代码的 4、下载到本地之后&#xff0c;把里面的 iconfont.…

深入理解 CSS——CSS进阶与实践(5w字高频面试题整理)

本文总结了CSS高频面试题&#xff0c;并搭配了演示动画进行CSS样式演示。介绍了关于如何理解盒模型&#xff0c;如何实现块级元素水平居中&#xff0c;如何实现两侧固定中间自适应的三栏布局、如何实现两栏布局&#xff0c;如何进行响应式设计&#xff0c;对BFC的理解&#xff…

【c 语言】算术操作符详解

&#x1f388;个人主页&#xff1a;豌豆射手^ &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏 &#x1f917;收录专栏&#xff1a;C语言 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共同学习、交流进步&…

【管理咨询宝藏37】某四大咨询公司K记PPT模板

本报告首发于公号“管理咨询宝藏”&#xff0c;如需阅读完整版报告内容&#xff0c;请查阅公号“管理咨询宝藏”。 【管理咨询宝藏37】某四大咨询公司K记PPT模板 【格式】PPT版本&#xff0c;可编辑&#xff0c; 【关键词】PPT模板&#xff0c;PPT图表 【文件核心观点】 - 3…

负数的四舍五入

负数的四舍五入 标签:基础 System.out.println(Math.round(-0.2)); System.out.println(Math.round(-0.5)); System.out.println(Math.round(-0.6));0 0 -1理解:四舍五入,找一个离目标小数近的整数,-0.2和0近,-0.6和-1近,中间的往右靠

KubeSphere多集群管理

多集群管理 各种组织跨不同的云厂商或者在不同的基础设施上运行和管理多个 Kubernetes 集群的做法非常普遍。由于每个 Kubernetes 集群都是一个相对独立的单元&#xff0c;因此在多集群的场景下&#xff0c;需要多集群管理解决方案。 KubeSphere 的多集群管理为用户提供统一的…

机器学习--Transformer 1

Transformer 是一个基于自注意力的序列到序列模型&#xff0c;与基于循环神经网络的序列到序列模型不同&#xff0c;其可以能够并行计算。 一、序列到序列模型 序列到序列模型输入和输出都是一个序列&#xff0c;输入与输出序列长度之间的关系有两种情况。第一种情况下&#…

【前端小技巧】各种奇奇怪怪的技巧合集

1&#xff0c;任意网页内容可编辑 使用方法&#xff1a;打开控制台&#xff0c;在console内输入这句话按回车&#xff1a;document.body.contentEditable‘true’ 然后你就可以编辑页面上的内容了&#xff0c;比如这样 2&#xff0c;浏览器直接运行HTML代码 使用方法&…

文件和流IO

文件可以看作是数据的集合&#xff0c;一般保存在磁盘或其他存储介质上文件I/O&#xff08;数据的输入/输出&#xff09;通过流&#xff08;Stream&#xff09;来实现&#xff1b;流提供一种向存储写入字节和从存储读取字节的方式对于流有5 种基本的操作&#xff1a;打开、读取…

Linux:进程

进程 知识铺垫冯诺依曼体系结构操作系统&#xff08;OS&#xff09; 进程概念进程的查看ps 命令获取进程 pid文件内查看进程终止进程的方式kill命令快捷键 进程的创建 forkfork 返回值问题 进程状态运行状态 &#xff1a;R休眠状态&#xff1a;S &#xff08;可中断&#xff09…

PCBA方案设计充气泵设计

随着科技的不断进步&#xff0c;充气泵在户外活动、露营和旅行中变得越来越常见。而充气泵的性能和稳定性主要依赖于其控制系统&#xff0c;其中芯片的设计和开发是充气泵方案的关键。SIC8833芯片是一款专门为充气泵设计的芯片&#xff0c;接下来我们来讲下充气泵方案芯片SIC88…

[java基础揉碎]面向对象多态

目录 问题引出多态: 代码如下: 多态(多种状态)的介绍: 多态的具体体现: 方法的多态: 对象的多态: 我们用多态解决最上面的问题: ​编辑 ​编辑 多态的注意事项和细节: 多态的向上转型: ​编辑 多态的向下转型 属性的重写问题 问题引出多态: 代码如下: 新建一个食物…