Vue系列:通过vue-router如何传递参数

(1) 设置好路由配置

router.map({
  '/history/:deviceId/:dataId': {
    name: 'history', // give the route a name
    component: { ... }
  }
})

  

这里有2个关键点:
    a)给该路由命名,也就是上文中的 name: 'history',
    b)在路径中要使用在路径中使用冒号开头的数字来接受参数,也就是上文中的 :deviceId, :dataId;
 
(2)在v-link中传递参数;
    
<a v-link="{ name: 'history', params: { deviceId: 123, dataId:456 }}">history</a>

  

这里的123,456都可以改用变量。
比如该template所对应的组件有2个变量定义如下:
data: function() {
    return {
      deviceId:123,
      dataId:456
        }
} 

  

   
此时上面那个v-link可以改写为:
   
 <a v-link="{ name: 'history', params: { deviceId: deviceId, dataId: dataId }}">history</a>

  

(3)在router的目标组件上获取入参
    比如在router目标组件的ready函数中可以这么使用。
    
ready: function(){
        console.log('deviceid: ' + this.$route.params.deviceId);
        console.log('dataId: ' + this.$route.params.dataId);
    }

  

二、

1.路径:http://localhost:8081/#/test?name=1

<router-link :to="{path:'/test',query: {name: id}}">跳转</router-link>(id是参数)

 使用:this.$route.query.id

2.路径:http://localhost:8081/#/test/1

<router-link :to="'/test/'+id">跳转</router-link>(id是参数)

路由:

使用:this.$route.params.id(这个id给上图路由的配置有关)

this.$route是一个数组,里面包含路由的所有信息

注意:router-link中链接如果是‘/’开始就是从根路由开始,如果开始不带‘/’,则从当前路由开始

三、

(1)在路由中重新设置选中的标签的class名(在router》index.html中设置)

linkActiveClass: 'active',
添加重定向:
redirect: '/goods?id=10'

原文链接:http://www.bubuko.com/infodetail-2227472.html

原文:http://blog.csdn.net/sangjinchao/article/details/70888259

原文地址:https://www.cnblogs.com/karila/p/7520245.html