this.$router.push、replace、go的区别
1.this.$router.push()
描述:跳转到不同的url,但这个方法会向history栈添加一个记录,点击后退会返回到上一个页面。
用法:
this.$router.push('/index') this.$router.push({path:'/index'}) this.$router.push({path:'/index',query:{name: '123'}}) this.$router.push({name:'index',params:{name:'123'}}) // 字符串 router.push('home') // 对象 this.$router.push({path: '/login?url=' + this.$route.path}); // 带查询参数,变成/backend/order?selected=2 this.$router.push({path: '/backend/order', query: {selected: "2"}}); // 命名的路由 router.push({ name: 'user', params: { userId: 123 }})
2.this.$router.replace()
描述:同样是跳转到指定的url,但是这个方法不会向history里面添加新的记录,点击返回,会跳转到上上一个页面。上一个记录是不存在的。
3.this.$router.go(n)
相对于当前页面向前或向后跳转多少个页面,类似 window.history.go(n)
。n可为正数可为负数。正数返回上一个页面
//声明式: <router-link :to="..." replace></router-link> // 编程式: router.replace(...) //push方法也可以传replace this.$router.push({path: '/home', replace: true})