本文介绍: 当我们使用router.push进行组件切换时,当使用inside1子组件时,url会变成“/inside1”;但是按照我们平时的写法切换组件后会导致url改变,从而使得菜单高亮消失,这是非常影响用户体验的。可以看到,我们只需要把子组件path改为与父组件一致(但name保留为子组件自己的)按照平时的写法,我们会设置重定向指定进入页面显示的子组件,以及两个子组件的路径。首先,在设置路由时,我们需要路由设置一个name,方便我们进行跳转路由指定。我们只需要做一点点改动。

写项目时,我们常会用到侧边菜单栏,而具体页面中经常使用<routerview>切换子组件。

但是按照我们平时的写法,切换子组件后会导致url改变,从而使得菜单高亮消失,这是非常影响用户体验的。

所以,我们需要找到router.push切换子组件但是不改变url方法

首先,在设置路由时,我们需要路由设置一个name,方便我们进行跳转路由指定

 {
      path: "/page",
      name: "myPage",
      component: () => import("@/views/testPage.vue"),
},

按照平时的写法,我们会设置重定向指定进入页面显示的子组件,以及两个子组件的路径

      {
        path: "outside",
        name: "outside",
        component: () => import("@/views/outside.vue"),
        redirect: "/inside1",
        children: [
          {
            path: "/inside1",
            name: "inside1",
            component: () => import("@/views/inside1.vue"),
          },
          {
            path: "/inside2",
            name: "inside2",
            component: () => import("@/views/inside2.vue"),
          },
        ],
      },

(路由)

 router.push({path:'inside1'})

 (切换子组件)

当我们使用router.push进行<routerview>组件切换时,当使用inside1子组件时,url会变成“/inside1”;当使用inside2子组件时,url会变成“/inside2”。

但是在我们的菜单配置文件中,只有url为“/outside”时才会让当前菜单高亮。

(图源网络

自己摸索了一会被我给搞定了!

我们只需要做一点点改动

      {
        path: "outside",
        name: "outside",
        component: () => import("@/views/outside.vue"),
        redirect: "/inside1",
 
     {
        path: "outside",
        name: "outside",
        component: () => import("@/views/outside.vue"),
        // redirect: "/inside1",//默认情况下显示的是第一个子组件
        children: [
          {
            path: "/outside",
            name: "inside1",
            component: () => import("@/views/inside1.vue"),
          },
          {
            path: "/outside",
            name: "inside2",
            component: () => import("@/views/inside2.vue"),
          },
        ],
      },

(路由)

 router.push({name:'inside1'})

可以看到,我们只需要把子组件的path改为与父组件一致(但name保留为子组件自己的)

而进行跳转时,使用name指定需要切换的组件即可

这样,在切换子组件时,便可以实现丝滑切换且url不发生改变。

原文地址:https://blog.csdn.net/m0_62742402/article/details/134819140

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_47041.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注