美文网首页程序员
vue-动态路由的匹配

vue-动态路由的匹配

作者: 茹茹茹茹茹茹欧尼_ | 来源:发表于2017-07-21 22:09 被阅读0次

我们经常需要把某种模式匹配到所有的路由,全都映射到同个组件。例如,我们有一个User组件,对于所有ID各部相同的用户,都要使用这个组件来渲染。那么,我们可以在vue-router的路由路径中使用『动态路径参数』(dynamic segment)来达到这个效果:

const User = {
  template: '<div>User</div>'
}

const router = new VueRouter({
  routes: [
    // 动态路径参数 以冒号开头
    { path: '/user/:id', component: User }
  ]
})

现在呢,像** /user/foo **和 /user/bar 都将映射到相同的路由。

一个『路径参数』使用冒号 : 标记。当匹配到一个路由时,参数值会被设置到 this.$route.params,可以在每个组件内使用。于是,我们可以更新** User **的模板,输出当前用户的 ID:

const User = {
  template: '<div>User {{ $route.params.id }}</div>'
}

你可以在一个路由中设置多段『路径参数』,对应的值都会设置到 $route.params 中。例如:

模式 匹配路径 $route.params
/user/:username /user/evan { username: 'evan' }
/user/:username/post/:post_id /user/evan/post/123 { username: 'evan', post_id:

除了** $route.params**
外,$route
对象还提供了其它有用的信息,例如,$route.query
(如果 URL 中有查询参数)、$route.hash
等等。你可以查看 API 文档 的详细说明。

响应路由参数的变化

提醒一下,当使用路由参数时,例如从 /user/foo 导航到 user/bar原来的组件实例会被复用。因为两个路由都渲染同个组件,比起销毁再创建,复用则显得更加高效。不过,这也意味着组件的生命周期钩子不会再被调用。
复用组件时,想对路由参数的变化作出响应的话,你可以简单地 watch(监测变化)$route 对象:

const User = {
  template: '...',
  watch: {
    '$route' (to, from) {
      // 对路由变化作出响应...
    }
  }
}

很晚了 ,各位也别太晚睡觉。明天会发布vue-嵌套路由

相关文章

  • vue-动态路由的匹配

    我们经常需要把某种模式匹配到所有的路由,全都映射到同个组件。例如,我们有一个User组件,对于所有ID各部相同的用...

  • vue全家桶(2.5)

    3.8.动态路由匹配和路由组件传参 #3.8.1.动态路由匹配 动态路由意味着不固定,具有某种模式,我们希望通过某...

  • Vue-router2.0基础实践

    基础用法: 动态路由匹配: 嵌套路由: 编程式路由: 命名路由: 命名视图:

  • this.$router.push的问题

    会匹配到‘/login’路由,但是 如果遇到动态路由会加载到动态路由后面。 所以不要忘了加'/'

  • vue-动态路由

    准备工作 新建项目,vue create routeapp选择手动设置-route-history输入yesyes...

  • 动态路由匹配/:

    动态路由就是在路由路径中使用“动态路径参数” 简单理解为在路径后面加上 /:xx 如上面的例子,参数为id,其值可...

  • vue-router

    动态路由匹配 使用动态路由匹配时,原本的组件会被复用,因而不会调用生命周期钩子函数。可用watch观察$rou...

  • vue路由

    http://router.vuejs.org/zh-cn/ 动态路由匹配(路由传参) 我们经常需要把某种模式匹配...

  • vue3中动态添加路由刷新无法正确匹配路由组件

    1.问题 动态添加路由之后,页面重新匹配路由,匹配到了设置的404 notfound页面 该页面是在路径无法匹配到...

  • Vue路由全解

    路由基础 router-link router-view router.js 动态路由匹配 嵌套路由 命名路由 命...

网友评论

    本文标题:vue-动态路由的匹配

    本文链接:https://www.haomeiwen.com/subject/xkcykxtx.html