vue路由

129 阅读1分钟

路由就是对应关系

当加入 Vue Router 时,我们需要做的就是将我们的组件映射到路由上,让 Vue Router 知道在哪里渲染它们。

router-link

创建链接时使用自定义组件router-link,而不是a标签,这可以使Vue Router在不诚信加载页面的情况下更改URL,处理URL的生成以及编码

router-view

router-view 将显示与 url 对应的组件

 <router-link to="/about">关于</router-link>
 <router-view></router-view>

嵌套路由

通过路由实现组件的嵌套展示,叫做嵌套路由

要将组件渲染到嵌套的 router-view 中,我们需要在路由中配置 children

通过children属性声明子路由规则

在路由模块中,导入需要的组件,并使用children属性声明子路由规则

import Tab1 from '@/components/tabs/tab1.vue'
import Tab2 from '@/components/tabs/tab2.vue'
const router =new VueRouter({
  routes:[
    {
      path:'/about',
      component:About,
      children:[
      {path:'',component:Tab1},
      {path:'tab2',component:Tab2}
    ]}
  ]
})

动态路由

当我们需要将给定匹配模式的路由映射到同一个组件上,便需要用到动态路由
动态路由是指把Hash地址中可变的部分定义为参数项,从而提高路由规则的复用性

    //路由中的动态参数以: 进行声明,冒号后面的使动态参数
    {path:'/movie/:mid',component:Movie,props:true}、
    
    //将以下3个路由规则,合并成了一个,提高了路由规则的复用性
    <router-link to="/movie/1">洛基</router-link>
    <router-link to="/movie/2">雷神</router-link>
    <router-link to="/movie/3">复联</router-link>

当一个路由被匹配时,它的 params 的值将在每个组件中以 this.$route.params 的形式暴露出来。

<div>User {{ $route.params.mid }}</div>