- 通过 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 会把参数显示在地址栏路径上
- 通过动态路径参数传参
在路由规则中为路径设置动态参数,例如:/index/:id,这样一来 id 即为一个动态的值 跳转时,可以直接在路径中设置 id 的值,例如:router.push( { name: 'details', params: { id: '001' } } )
- 通过 props 进行传递
如果路由规则中的 props 被设置为 true,$route.params 将会被设置为组件属性。也就是说如果通过 params 来传参的话,可以设置路由的 props,就可以直接在组件中通过 props 属性来获取到数据