1.1 路由不带参数路由name方式跳转首页 路由path方式跳转首页
1. params传参的参数不会显示在跳转的URL中,query传参的参数会显示在URL中。2. params所传的参数通过this.$route.params.参数;获取,query所传的参数通过this.$route.query.参数;获取3. 因为params所传递的参数不显示在URl中,所以在路由跳转时推荐params方式进行传参4. 都不能传对象和着数组引用类型数据,只能传字符串类型数据
路由name,params方式跳转首页 路由name,query方式跳转首页 路由path,params方式跳转首页 路由path,query方式跳转首页
this.$router.push({ path: '/home'});this.$router.push({ name: 'home'});
路由name方式跳转 goTo() {this.$router.push({ name: 'home', params: { a: '1', b: '2' } });//推荐用params传参方式this.$router.push({ name: 'home', query: { a: '1', b: '2' } });}
路由path方式跳转 goTo() {this.$router.push({ path: '/home', params: { a: '1', b: '2' } });//推荐用params传参方式this.$router.push({ path: '/home', query: { a: '1', b: '2' } });}
goTo() {let routeData = this.$router.resolve({path: '/home',});window.open(routeData.href, '_blank');}
3.2通过name形式跳转
goTo() {let routeData = this.$router.resolve({name: 'home',});window.open(routeData.href, '_blank');}
//导航后不会留下 history 记录。即使点击返回按钮也不会回到这个页面。
this.$router.replace({path:'/goods/add'});//带参数方式与push相同(获取参数也一样)
this.$router.replace({path:'/goods/add', query: {selected: "3"}});//push方法也可以传replace
//push在加上replace: true后,它不会向 history 添加新记录,而是跟它的方法名一样 —— 替换掉当前的 history 记录。this.$router.push({path: '/home', replace: true})
//跳转到上一页
this.$router.go(-1)
//跳转到上上页this.$router.go(-2)
tip:推荐使用最常用方法二,四