详解vue-router 2.0 常用基础知识点之router.push()


Posted in Javascript onMay 10, 2017

除了使用 <router-link> 创建 a 标签来定义导航链接,我们还可以借助 router 的实例方法,通过编写代码来实现。

router.push(location)

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

当你点击 <router-link> 时,这个方法会在内部调用,所以说,点击 <router-link :to="..."> 等同于调用 router.push(...)。

声明式:<router-link :to="...">

编程式:router.push(...)

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

// 字符串
router.push('home')

// 对象
this.$router.push({path: '/login?url=' + this.$route.path});

// 命名的路由
router.push({ name: 'user', params: { userId: 123 }})

// 带查询参数,变成/backend/order?selected=2
this.$router.push({path: '/backend/order', query: {selected: "2"}});

// 设置查询参数
this.$http.post('v1/user/select-stage', {stage: stage})
   .then(({data: {code, content}}) => {
      if (code === 0) {
        // 对象
        this.$router.push({path: '/home'});
      }else if(code === 10){
        // 带查询参数,变成/login?stage=stage
        this.$router.push({path: '/login', query:{stage: stage}});
      }
});

// 设计查询参数对象
let queryData = {};
if (this.$route.query.stage) {
  queryData.stage = this.$route.query.stage;
}
if (this.$route.query.url) {
  queryData.url = this.$route.query.url;
}
this.$router.push({path: '/my/profile', query: queryData});

replace

类型: boolean

默认值: false

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

//加上replace: true后,它不会向 history 添加新记录,而是跟它的方法名一样 —— 替换掉当前的 history 记录。

this.$router.push({path: '/home', replace: true})
//如果是声明式就是像下面这样写:
<router-link :to="..." replace></router-link>
// 编程式:
router.replace(...)

综合案例

this.$router.push({path: '/coach/' + this.$route.params.id, query: queryData});

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Javascript中的for in循环和hasOwnProperty结合使用
Jun 05 Javascript
jQuery怎么解析Json字符串(Json格式/Json对象)
Aug 09 Javascript
jquery的ajax和getJson跨域获取json数据的实现方法
Feb 04 Javascript
jquery实现弹出层效果实例
May 19 Javascript
JavaScript学习笔记之检测客户端类型是(引擎、浏览器、平台、操作系统、移动设备)
Dec 03 Javascript
JavaScript实现显示函数调用堆栈的方法
Apr 21 Javascript
IE和Firefox之间在JavaScript语法上的差异
Apr 22 Javascript
JavaScript实现邮箱地址自动匹配功能代码
Nov 28 Javascript
bootstrap modal+gridview实现弹出框效果
Aug 15 Javascript
Bootstrap modal只加载一次数据的解决办法(推荐)
Nov 24 Javascript
解决 viewer.js 动态更新图片导致无法预览的问题
May 14 Javascript
vue+element搭建后台小总结 el-dropdown下拉功能
Apr 10 Javascript
JavaScript通过filereader接口读取文件
May 10 #Javascript
关于vue-router路径计算问题
May 10 #Javascript
JavaScript使用readAsDataUrl方法预览图片
May 10 #Javascript
Bootstrap table使用方法总结
May 10 #Javascript
将angular-ui的分页组件封装成指令的方法详解
May 10 #Javascript
vue-axios使用详解
May 10 #Javascript
详解axios在vue中的简单配置与使用
May 10 #Javascript
You might like
在服务端进行目录建立、删除,文件上传、删除的过程的php代码
2008/09/10 PHP
PHP批量生成静态HTML的简单原理和方法
2014/04/20 PHP
yii2 RBAC使用DbManager实现后台权限判断的方法
2016/07/23 PHP
php实现当前页面点击下载文件的实例代码
2016/11/16 PHP
PHP读取zip文件的方法示例
2016/11/17 PHP
phpmailer绑定邮箱的实现方法
2016/12/01 PHP
使用Git实现Laravel项目的自动化部署
2019/11/24 PHP
cookie丢失问题(认证失效) Authentication (用户验证信息)也会丢失
2009/06/04 Javascript
向大师们学习Javascript(视频与PPT)
2009/12/27 Javascript
jquery中ajax调用json数据的使用说明
2011/03/17 Javascript
Javascript 面试题随笔
2011/03/31 Javascript
javascript中判断一个值是否在数组中并没有直接使用
2012/12/17 Javascript
jQuery下实现等待指定元素加载完毕(可改成纯js版)
2013/07/11 Javascript
js 弹出新页面避免被浏览器、ad拦截的一种新方法
2014/04/30 Javascript
js图片实时加载提供网页打开速度
2014/09/11 Javascript
node.js中的fs.openSync方法使用说明
2014/12/17 Javascript
VueJs单页应用实现微信网页授权及微信分享功能示例
2017/07/26 Javascript
无限循环轮播图之运动框架(原生JS实现)
2017/10/01 Javascript
Angular 封装并发布组件的方法示例
2018/04/19 Javascript
[49:08]OpTic vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python原始字符串与Unicode字符串操作符用法实例分析
2017/07/22 Python
windows下python之mysqldb模块安装方法
2017/09/07 Python
python3利用smtplib通过qq邮箱发送邮件方法示例
2017/12/03 Python
python bmp转换为jpg 并删除原图的方法
2018/10/25 Python
python读取文件名并改名字的实例
2019/01/07 Python
Python企业编码生成系统之主程序模块设计详解
2019/07/26 Python
树莓派4B安装Tensorflow的方法步骤
2020/07/16 Python
通过实例简单了解Python sys.argv[]使用方法
2020/08/04 Python
HTML5 视频播放(video),JavaScript控制视频的实例代码
2018/10/08 HTML / CSS
世界上最具创新性的增强型知名运动品牌:Proviz
2018/04/03 全球购物
学前班评语大全
2014/05/04 职场文书
品牌转让协议书
2014/08/20 职场文书
党的群众路线教育实践活动领导班子整改措施
2014/09/30 职场文书
新婚姻法离婚协议书范文
2014/11/30 职场文书
学雷锋倡议书
2015/01/19 职场文书
电脑关机速度很慢怎么办 提升电脑关机速度设置教程
2022/04/08 数码科技