getDescribe(id) {// 直接调用$routerpush 实现携带参数的跳转
this$routerpush({
path: `/describe/${id}`,
})
方案一,需要对应路由配置如下:
{ path: '/describe/:id',
name: 'Describe',
component: Describe
}
很显然,需要在path中添加/:id来对应 $routerpush 中path携带的参数。在子组件中可以使用来获取传递的参数值。
this$routeparamsid
父组件中:通过路由属性中的name来确定匹配的路由,通过params来传递参数。
this$routerpush({ name: 'Describe', params: { id: id
}
})
对应路由配置: 注意这里不能使用:/id来传递参数了,因为父组件中,已经使用params来携带参数了。
{ path: '/describe',
name: 'Describe',
component: Describe
}
子组件中: 这样来获取参数
this$routeparamsid
父组件:使用path来匹配路由,然后通过query来传递参数
这种情况下 query传递的参数会显示在url后面id=?
this$routerpush({ path: '/describe', query: { id: id
}
})
对应路由配置:
{ path: '/describe',
name: 'Describe',
component: Describe
}
对应子组件: 这样来获取参数
this$routequeryid
这里要特别注意 在子组件中 获取参数的时候是$routeparams 而不是
$router 这很重要~~~
routerpush(location) 会向 history 栈添加一个新的记录,当用户点击浏览器后退按钮时,则回到之前的 URL。
routerreplace(location) ,replace 属性(默认值: false),它不会向 history 添加新记录,而是跟它的方法名一样 —— 替换掉当前的 history 记录。
注意:获取路由上面的参数,用的是$route,后面没有r
params是路由的一部分,必须要有。query是拼接在url后面的参数,没有也没关系。
params一旦设置在路由,params就是路由的一部分,如果这个路由有params传参,但是在跳转的时候没有传这个参数,会导致跳转失败或者页面会没有内容。
params、query不设置也可以传参,但是params不设置的时候,刷新页面或者返回参数会丢失。
两者都可以传递参数,区别是什么?
query 传参配置的是path,而params传参配置的是name,在params中配置path无效
query在路由配置不需要设置参数,而params必须设置
query传递的参数会显示在地址栏中
params传参刷新会无效,但是query会保存传递过来的值,刷新不变一、this$routequery的使用
1、router/indexjs
2、传参数
3、获取参数
this$routequeryshopid
4、url的表现形式(url中带有参数)
二、this$routeparams
1、router/indexjs
2、传参数( params相对应的是name query相对应的是path)
3、获取参数
4、url的表现形式(url中没带参数)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)