路由传参
声明式导航: router-link (to属性) 可以实现路由跳转
编程式导航: 利用组件实例的$router.push| $router.replace方法 ,可以实现路由跳转,添加自己的业务逻辑
路由传参,几种参数写法
params参数: 属于路径当中的一部分,需要注意,在配置路由需要占位
query参数: 不属于路径当中的一部分,类似ajax中的queryString 如: /home?query=1&a=2,不需要占位
路由传递参数:
第一种字符串形式
this.$router.push('/search/' + this.keyword + '?key=' + this.keyword)
第二种模板字符串 this.$router.push(`/search/${this.keyword}?key=${this.keyword}`)
第三种对象形式(常用)
this.$router.push({
name: "search",
params: {
key: this.keyword,
},
query: {
keyword: this.keyword,
}
});
1.路由传递参数,path是否可以结合params一起使用?
答案: 路由跳转传参时,对象的写法可以name 和path 跳转 ,但是path 和params不能一起使用
2.如何指定params参数可传和不传?
配置路由的时候,占位了(params参数),但是路由跳转的时候不传递,路径会出现问题
如何指定params参数可传可不传,在配置路由的时候,在占位符后面加个?
3.params参数可以传递也可以不传递,但是如果传递是空字符
this.$router.push({
name: 'search',
params: {
key: '',
},
query: {
keyword: '123'
}
})
使用undefined解决params参数可以传递不传递空字符串的问题
this.$router.push({
name: 'search',
params: {
key: '' || undefined ,
},
query: {
keyword: '123'
}
})
4.路由组件能不能传递props数据?(不常用)
答案:可以的(对象传参)只能传params属性
在路由配置配置
//布尔值写法:
props:true,
//对象写法:
props: {
key:1
}
函数写法:可以传递params参数query参数
props: ($route) => {
return {
key:$route.params.key,
keyword: $route.query.keyword
}
}
免责申明:
1. 本站所有教程、文章或资源分享目的仅供大家学习和交流!
2. 如有无法查看或链接失效,麻烦请报告联系管理员处理!
3. 本站无法保证资源或其时效性,恕不接受任何提问。
4. 在本站下载的源码严禁杜绝任何形式的正式商业用途,请去程序官方购买。 所有资料均来自于网络,版权归原创者所有!本站不提供任何保证,并不承担任何法律责任,如果对您的版权或者利益造成损害,请提供相应的资质证明,我们将于3个工作日内予以删除。