路由

  • 路由map
  • 路由视图
  • 路由导航

实现简单路由

import VueRouter from 'vue-router'
Vue.use(VueRouter)

let router = new VueRouter({
  mode: 'history',//这样访问路由就不需要加上/#
  routes: [
    {
      path: '/a',
      component: a
    },
    {
      path: '/b',
      component: b
    }
  ]
})
new Vue({
  router,
  el: '#app',
  render: h => h(App),
  directives: {

  }
})

路由的代码显示在


to a//可以实现转换成a标签跳转
to b

实现多层参数路由

let router = new VueRouter({
  mode: 'history',//这样访问路由就不需要加上/#
  routes: [
    {
      path: '/a/:color/detail/:type',
      component: a
    },
    {
      path: '/b',
      component: b
    }
  ]
})

此处
/a/:color/detail/:type
带冒号的表示属性为color,填的任何值都会赋值给color和type

路由嵌套

routes: [
    {
      path: '/a',
      component: a,
      children: [
        {
          path: 'aa',
          component: aa
        }
      ]
    },
    {
      path: '/b',
      component: b,
      children: [
        {
          path: 'bb',
          component: bb
        }
      ]
    }
  ]

子路由渲染在父路由的组件里,所以需要在父路由的组件加上

同时我们也可以通过
to b bb
或者通过代码实现

// 字符串
router.push('home')

// 对象
this.$router.push({path: '/login?url=' + this.$route.path});

// 命名的路由
router.push({ name: 'user', params: { userId: 123 }})

// 带查询参数,变成/backend/order?selected=2
this.$router.push({path: '/backend/order', query: {selected: "2"}});

重定向

在routes中加上

{
      path: '/',
      redirect: '/a'
}

你可能感兴趣的:(路由)