vue路由如何传递当前行数据

在当前页面中,查看当前行数据,如果是通过弹框的方式,我们可以通过方法带的row,来展示当前行数据,但是如果是跳转到新的页面呢,我们如何在详情页拿到当前数据呢?通过后端提供的接口可以,通过浏览器存储机制也可以,其实路由本身就提供了一种方式,那就是动态路由,通过动态路由,我们可以把信息隐式的传递过去,当然在路由里面你并不需要写成动态路由的方式,这里只是借用动态路由的机制实现带当前row进行跳转
如路由

{
    path: 'stream',
    component: () =>
        import('@/stream/detail'),
    name: 'streamDetail',
  },

跳转方式

  this.$router.push({name: 'streamDetail', params: row})

获取方式

this.$route.params

这里params与query不能共存,提供了params只能通过name跳转,因为提供了 path,params 会被忽略,{name: 'streamDetail', params: row}实质上是把params的值通过键赋值给动态路由的动态参数,也就是说你可以提供超过动态参数的信息,动态参数也可以不设置,但是你依然可以使用这种方式。然而该方法有一个弊端,那就是刷新的时候丢失数据,原因在于params是根据动态路由匹配对应的键值,而我们因为不是动态路由,所以params是{}。此方法有利有弊,请酌情使用

发布了53 篇原创文章 · 获赞 88 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/qq_43702430/article/details/103583125