路由跳转的几种方式

vue跳转有总体分为带参跳转和不带参跳转;
带参又有路由显示和不显示的差别

1、router-link跳转

//不带参数跳转
 <router-link to="/register">
    <span>去这里注册</span>
 </router-link>
 
 //带参跳转 路由显示
 <router-link :to="{path:'register',query:{setid:123456}}">
    <span>去这里注册</span>
 </router-link>
 
 //带参跳转 路由不显示
 <router-link :to="{path:'register',params:{setid:123456}}">
    <span>去这里注册</span>
 </router-link>

2、this.$router.push()

//不带参数跳转
this.$router.push("/register")

//带参跳转 路由显示
this.$router.push({path:"/register",query:{setid:123456}})

//带参跳转 路由不显示 页面刷新数据丢失
this.$router.push({name:"register",params:{setid:123456}})

3、this.$router.go(1);

// 后退一步记录,等同于 history.back()
this.$router.go(-1);

// 在浏览器记录中前进一步,等同于 history.forward()
this.$router.go(1);

4、this.$router.replace

1.跳转到指定URL,替换history栈中最后一个记录,点击后退会返回至上上一个页面
(A----->B----->C 结果B被C替换 A----->C)
2.设置 replace 属性(默认值: false)的话,当点击时,会调用 router.replace() 而不是 router.push(),于是导航后不会留下 history 记录。即使点击返回按钮也不会回到这个页面
加上replace: true后,它不会向 history 添加新记录,而是跟它的方法名一样 —— 替换掉当前的 history 记录。

//跳转后无法返回到上一页
this.$router.replace("/register")
//声明式:
<router-link :to="/register" replace></router-link>
// 编程式:
this.$router.replace('/register')
//push方法也可以传replace
this.$router.push({path: '/register', replace: true})
posted @ 2022-07-11 17:23  做一只不被遗忘的小强  阅读(1699)  评论(0编辑  收藏  举报