vue-router2.0跳转之router.push()的使用方法

  介绍

这篇文章主要介绍vue-router2.0跳转之router.push()的使用方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

<强> router.push(位置)

除了使用创建一个标签来定义导航链接,我们还可以借助路由器的实例方法,通过编写代码来实现。

<强> router.push(位置)

想要导航到不同的URL,则使用路由器。推动方法。这个方法会向历史栈添加一个新的记录,所以,当用户点击浏览器后退按钮时,则回到之前的URL。

当你点击& lt; router-link>时,这个方法会在内部调用,所以说,点击等同于调用router.push (…)。

声明式:& lt; router-link:=啊霸?/p>

编程式:router.push (…)

该方法的参数可以是一个字符串路径,或者一个描述地址的对象。

//字符串
  router.push(& # 39;回家# 39;)//对象
  美元。路由器。推动({路径:& # 39;/login& # 63; url=& # 39;+ $ route.path});//命名的路由
  路由器。推动({name: & # 39;用户# 39;,参数:{标识:123}})//带查询参数,变成/后端/order& # 63;选择=2
  美元。路由器。推动({路径:& # 39;/后端/订单# 39;,查询:{选择:“2“}});//设置查询参数
  美元。http.post (& # 39; v1/user/select-stage& # 39;,{阶段:阶段})
  不要犹豫({数据:{代码,内容}})=比;{
  如果(代码===0){//对象
  美元。路由器。推动({路径:& # 39;/回家# 39;});
  }else if(代码===10){//带查询参数,变成/login& # 63;阶段=阶段
  美元。路由器。推动({路径:& # 39;/登录# 39;,查询:{阶段:阶段}});
  }
  });//设计查询参数对象
  让queryData=https://www.yisu.com/zixun/{};
  如果(这一点。route.query.stage美元){
  queryData。=这阶段。route.query.stage美元;
  }
  如果(这一点。route.query.url美元){
  queryData。url=oute.query.url美元;
  }
  美元。路由器。推({路径:/我/配置文件,查询:queryData}); 

<强>替换

类型:布尔

默认值:false

设置取代属性的话,当点击时,会调用router.replace()而不是router.push(),于是导航后不会留下历史记录。即使点击返回按钮也不会回到这个页面。

//加上取代:真正的后,它不会向历史添加新记录,而是跟它的方法名一样,替换掉当前的历史记录。

美元路由器。推动({路径:& # 39;/回家# 39;,取代:真正})//如果是声明式就是像下面这样写:   & lt; router-link:=啊皉eplace> & lt;/router-link>//编程式:   router.replace (…)

<强>综合案例

。美元路由器。推动({路径:& # 39;/教练/& # 39;+ route.params美元。id、查询:queryData});

<强>解决从登录页通过。美元路由器。推动跳转首页后点返回健路由变而页面不变的问题

做H5项目的时候遇到一个问题,我从登录登录页通过。美元路由器。推动({name: & # 39;回家# 39;})路由登录成功后跳转到首页,但在ios系统下,会有一个默认返回条,点击返回键出现以下情况,路由显示的是回到登录页,而页面却还是首页。

<>强解决思路:

开始我试着把推动改为替换,但是发现并没什么卵用,还是会出现问题,所以只好用路由导航守卫去监听。

在首页加入beforeRouteLeave,监听到to.name如果是登录的话就不跳转,否则就跳转,然后问题就解决了。

 beforeRouteLeave(下),从{
  如果(to.name===& # 39;登录# 39;){
  下(false)//不跳转
  其他}{
  next()//跳转到另一个路由
  }
  }

 vue-router2.0跳转之router.push()的使用方法

以上是vue-router2.0跳转之router.push()的使用方法的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

vue-router2.0跳转之router.push()的使用方法