Vue嵌套路由

概述

代码思想

 

1:router-view的细分

 

router-view第一层中,包含一个router-view

 

2:每一个坑挖好了,要对应单独的组件

 

路由配置

 

    - ```

       routes: [

                  {

                      path:'/nav',

                      name:'nav',

                      component:Nav,

                      //路由嵌套增加此属性

                      children:[

                      //在这里配置嵌套的子路由

                      ]

                  }

              ]

      ```

 

案例

进入首页下面会有导航,个人中心、首页、资讯、我的之类的

代码


var Nav={

           template:`

              <div>

      

                  <router-link :to="{name:'nav.index'}">首页</router-link>

                  |

                  <router-link :to="{name:'nav.pensonal'}">个人中心</router-link>

                  |

                  <router-link :to="{name:'nav.message'}">资讯</router-link>

                  |

                  <router-link :to="{name:'nav.mine'}">我的</router-link>



                  <router-view></router-view> //路由配置到组件中

              </div>

           `,

       }

       var Index={

           template:`

              <div>首页</div>

           `,

       }

       var Pensonal={

           template:`

              <div>个人中心</div>

           `,

       }

       var Message={

           template:`

              <div>资讯</div>

           `,

       }

       var Mine={

           template:`

              <div>我的</div>

           `,

       }

       //安装路由插件

       Vue.use(VueRouter);

       //创建路由对象

       var router= new VueRouter({

           //配置路由对象

           routes:[

              {

                  path:'',

                  redirect:'/nav'

              },

              {

                  path:'/nav',

                  name:'nav',

                  component:Nav,

                  //嵌套路由增加这个属性

                  children:[

                     //配置我们的嵌套路由

                     {path:'',redirect:'/nav/index'},

                      {path:'index',name:'nav.index',component:Index},

                      {path:'pensonal',name:'nav.pensonal',component:Pensonal},

                      {path:'message',name:'nav.message',component:Message},

                     {path:'mine',name:'nav.mine',component:Mine},

                  ]

              }

           ]

       })

       new Vue({

           el:'#app',

           router,

           template:`

              <div>

                  <router-view></router-view>  //嵌套路由

              </div>

           `,

           data(){

              return {}

           },

           methods:{

           }

       })

运行效果

 

 

从../嵌套路由.html直接跳转到../嵌套路由.html#/nav/index

Vue嵌套路由是指通过路由实现组件的嵌套展示,主要由页面结构决定。实际项目的应用界面常由多层嵌套的组件组合而成,为使这些组件能通过路由访问,路由需具有嵌套关系,即路由嵌套路由[^2]。 使用方法步骤如下: 1. **创建组件**:在`views`目录下新建相应的组件文件。如新建`user`目录,并编写`User.vue`和`Profile.vue`等组件文件[^1]。 2. **配置路由信息**:在`src/router/index.js`中进行配置。示例代码如下: ```javascript import { createRouter, createWebHistory } from 'vue-router' import Home from '../views/Home.vue' import ArticleList from '../views/ArticleList.vue' import ArticleDetail from '../views/ArticleDetail.vue' import OtherThing from '../views/OtherThing.vue' const routes = [ { path: '/', name: 'Home', component: Home }, { path: '/articles', name: 'ArticleList', component: ArticleList, children: [ { path: ':id', // 动态路由参数 name: 'ArticleDetail', component: ArticleDetail } ] }, { path: '/other1', name: 'other1', component: OtherThing } ] const router = createRouter({ history: createWebHistory(process.env.BASE_URL), routes }) export default router ``` 此代码中,`ArticleList`路由嵌套了`ArticleDetail`子路由,通过`children`数组实现嵌套[^3]。 3. **编写主组件**:编写`Main.vue`等主组件文件,在其中使用`<router - view>`标签来显示子路由对应的组件。 4. **导入路由信息**:在`main.js`中导入路由信息。示例代码如下: ```javascript import Vue from 'vue' import App from './App' import router from './router' Vue.config.productionTip = false /* eslint-disable no-new */ new Vue({ el: '#app', router, components: { App }, template: '<App/>' }) ``` 这样,Vue应用就可以使用配置好的嵌套路由了[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值