路由跳转的几种方式:
声明式导航: 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个工作日内予以删除。

学习交流联系

立即查看 了解详情