路由传参的方式

110 阅读1分钟
  1. 通过 query 和 params

① 通过 跳转页面:

<router-link  : to="{ path: ' ',query: { name: 'name' } }" />
<router-link  : to="{ name: ' ',query: { name: 'name' },params: { name: 'name' } }" />

使用 $route.push() 跳转时与上面相同

② query 和 params 方式的不同点

1)使用 path 跳转,传参必须使用 query,如果使用 params 会被忽略;使用命名路由的方式跳转则没有这个问题,params 和 query 都可以使用

2)使用 params 刷新页面数据会丢失( 如何解决?), query 则不会

3)query 会把参数显示在地址栏路径上

  1. 通过动态路径参数传参

在路由规则中为路径设置动态参数,例如:/index/:id,这样一来 id 即为一个动态的值 跳转时,可以直接在路径中设置 id 的值,例如:router.push(path:/index/123)也可以通过params传参的方式,但是这样就只能使用命名路由的方式跳转:router.push( { path: '/index/123 ' } ) 也可以通过 params 传参的方式,但是这样就只能使用命名路由的方式跳转:router.push( { name: 'details', params: { id: '001' } } )

  1. 通过 props 进行传递

如果路由规则中的 props 被设置为 true,$route.params 将会被设置为组件属性。也就是说如果通过 params 来传参的话,可以设置路由的 props,就可以直接在组件中通过 props 属性来获取到数据