Vue嵌套路由的使用方法及注意事项

本文详细介绍了如何在Vue应用中使用`router-view`作为顶层出口和子路由出口,并强调了子路由的配置要点,包括children属性的使用和路径设定。此外,还提到了空子路由的处理方法,帮助开发者更好地理解和实践Vue Router的嵌套结构。
摘要由CSDN通过智能技术生成

Vue嵌套路由的使用方法及注意事项

原文参考:https://blog.csdn.net/weixin_41967475/article/details/116868375

借助vue-router,使用嵌套路由

router-view 不仅可以作为最顶层的出口,渲染最高级路由匹配到的组件;还可以作为被渲染组件嵌套路由的出口。

1、router-view 作为最顶层的出口

<div id="app">
  <router-view></router-view>
</div>
const User = {
  template: '<div>我是User组件</div>'
}

const router = new VueRouter({
  routes: [{ path: '/user', component: User }]
})

2、router-view 作为被渲染组件嵌套路由的出口

要在嵌套的出口中渲染组件,需要在 VueRouter 的参数中使用 children 配置。

使用 children 参数实现子路由,需要先定义后引用,懒加载component: () =>{}会失效

使用 children 参数实现子路由,子路由的 path,不要带 / ,这让你充分的使用嵌套组件而无须设置嵌套的路径;而以 / 开头的嵌套路径会被当作根路径,这样不方便我们用户去理解URL地址。

# My.vue
---------------------------------------------------------------------
<template>
    <div class="my">
    	<div>我是My组件,嵌套路由别忘了加 router-view 哦!</div>
        <router-view></router-view>
    </div>
</template>

<script>
export default{
	name: "My",
	data(){
		return{}
	},
	methods:{},
	mounted(){}
}
</script>

<style scoped>

</style>
# router/index.js
---------------------------------------------------------------------
import Vue from 'vue'
import VueRouter from 'vue-router'
Vue.use(VueRouter)

// 使用children嵌套路由,需要先定义后引用,懒加载component: () =>{}会失效
import login from '../views/my/login/index'

const routes = [
  {
    path: '/my',
    name: 'My',
    component: () => import('../views/my/index'),
    // 使用 children 属性,实现子路由,同时,子路由的 path 前面,不要带 / ,
    //否则永远以根路径开始请求,这样不方便我们用户去理解URL地址
    children: [{
        path: 'login',
        name: 'Login',
        component: login
      }
    ]
  }
]

const router = new VueRouter({
  mode: 'history',
  base: process.env.BASE_URL,
  routes
})

export default router

3、空的子路由

当匹配不到合适的子路由,而你又想要渲染点什么,可以提供一个空的子路由。

比如,当你访问/user/foo路由时,没有匹配到合适的子路由,此时UserHome 会被渲染在 User 的 router-view 中

const router = new VueRouter({
  routes: [
    {
      path: '/user',
      component: User,
      children: [
        { 
        	path: '', 
        	component: UserHome 
        }
      ]
    }
  ]
})

PS:偷偷学前端,然后惊艳所有人

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值