vue-router嵌套/二级路由+视图路由(children)

一、嵌套路由/二级路由(配置好父路由component后,在父路由中添加children属性来配置这个父路由的子路由)

需要注意的是:父组件中的<router-view></router-view>是子组件的占位符是必不可少的,与子路由链接<router-link>可在同一个组件中

嵌套路由的现象:点击了子路由跳转后父路由组件的内容一直呈现;子路由的内容进行切换,地址栏的路径也随之改变。

redirect父路由上添加,浏览器访问/nest,会默认展示/nest/son1子的内容

此时,基于上面的配置,当你访问 /nest时,nest的出口是不会渲染任何东西,这是因为没有匹配到合适的子路由。如果你想要渲染点什么,可以提供一个 空的 子路由:

// 嵌套路由
    {
      path: '/nest',
      component: () => import('@/nest/nest'),
      // redirect: 'son1', // 重定向到son1
      // 嵌套路由的关键字children,在父路由中添加children数组 中添加子路径
      children:[
        // nest_son1会被渲染在 nest的 <router-view> 中
        { path: '', component: () => import('@/nest/nest_son1')}
        {
          // 要注意,以 / 开头的嵌套路径会被当作根路径,这让你充分的使用嵌套组件而无须设置嵌套的路径。如果这里的path的值为'/son1将无法渲染son1子组件'
          path: 'son1',
          component: () => import('@/nest/nest_son1')
        },
      ]
    }

上面子路由中加不加‘/’ 的区别:当点击son1的时候加 ‘/’会在地址栏中显示  #/son1;不加 ‘/’的时候回在地址栏中显示 #/nest/son1

注意:/xx就是根路径

效果:

 若有不足请多多指教!希望给您带来帮助!

  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Vue 3中,使用Vue Router进行路由管理时,可以实现嵌套路由的效果。嵌套路由允许将多个视图组件嵌套在一个父级路由下。 要实现嵌套路由,你需要在父级路由组件中使用`<router-view>`标签来显示子级路由视图。在子级路由组件中也可以再次使用`<router-view>`标签来嵌套更深层次的子级路由。 下面是一个简单的示例,演示如何在Vue 3中实现嵌套路由: ```html <!-- App.vue --> <template> <div> <router-view></router-view> </div> </template> <!-- Home.vue --> <template> <div> <h1>Home Page</h1> <router-view></router-view> <!-- 嵌套的子级路由视图将会显示在这里 --> </div> </template> <!-- About.vue --> <template> <div> <h2>About Page</h2> </div> </template> <!-- Contact.vue --> <template> <div> <h2>Contact Page</h2> </div> </template> ``` ```javascript // router.js import { createRouter, createWebHistory } from &#39;vue-router&#39;; import Home from &#39;./components/Home.vue&#39;; import About from &#39;./components/About.vue&#39;; import Contact from &#39;./components/Contact.vue&#39;; const routes = [ { path: &#39;/&#39;, component: Home, children: [ { path: &#39;about&#39;, component: About }, { path: &#39;contact&#39;, component: Contact } ] } ]; const router = createRouter({ history: createWebHistory(), routes }); export default router; ``` 在上面的示例中,`<router-view>`标签被用于App.vue组件和Home.vue组件中,以显示对应的子级路由视图。当访问根路径时,将会显示Home.vue组件的内容,并且在Home.vue组件中的`<router-view>`标签处显示子级路由(About.vue和Contact.vue)的内容。 希望这个示例能够帮助你理解Vue 3中如何实现嵌套路由。如果有任何疑问,请随时追问。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值