Vue中router-view与router-link连用时,链接跳转后不在router-view中显示并且新页面没有router-link内容

本文讲述了在Vue2中如何处理router-view与router-link配合时,新页面不显示导航链接内容的问题。关键在于理解路由的子路由机制,将需要单独跳转的页面配置为非子路由,且避免在App.vue中嵌套router-view。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Vue2中router-view与router-link连用时,链接跳转不在router-view中显示并且新页面没有router-link内容

1 问题描述:

<div id="app">
    <nav>
      <router-view to="/">index</router-link> |
      <router-link to="/about">About</router-link>
    </nav>
    <router-view/>
 </div>

使用上述代码实现路由跳转的效果,router-link中指向的新页面会在router-view这个组件中显示,同时

想要实现跳转一个全新的页面,新的页面不是显示在中,新页面中也没有nav标签中的内容,而是仅显示新页面有的东西

2 解决办法

首先这种问题出现的原因是一开始没有搞懂router-view与router-link之前的跳转逻辑,router-link跳转的链接会显示在router-view中的前提是跳转的路由是一个路由的子路由,当不是其子路由时,就会跳转全新的页面

注意:要想解决上述问题,首先上述代码不能写在App.vue中,将App.vue中的内容改为:

<div id="app">
    <router-view/>
 </div>

然后新写一个页面,然后写入:

<div id="app">
    <nav>
      <router-view to="/">index</router-link> |
      <router-link to="/about">About</router-link>
    </nav>
    <router-view/>
 </div>

这样做的目的是,app.vue是所有其他组件的父view/router,router里的父子关系通过来展现

接下来需要做的就是修改router/index.js中的路由配置:

const routes = [
	{
     	path: '/',
     	name: 'index',
        component: () => import('@/views/dashboard/index'),
        children: [
        {
        	path: '/',
            name: 'index',
            component: () => import('@/views/frontPage/index'),
        },{
            path: '/about',
            name: 'About',
            component: () => import('@/views/frontPage/About'),  
        }]
	},
	{
    	path: '/home',
    	name: 'home',
    	component: () => import('@/views/HomeView'),
	},
]

只需要将想完全跳转出去的页面设置在外面,与其平级,就能解决上述问题

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值