详解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,jquery闭包概念分析
Jun 19 Javascript
js/jQuery简单实现选项卡功能
Jan 02 Javascript
confirm的用法示例用于按钮操作时确定是否执行
Jun 19 Javascript
JS遍历Json字符串中键值对先转成JSON对象再遍历
Aug 15 Javascript
JavaScript语言对Unicode字符集的支持详解
Dec 30 Javascript
jquery加载图片时以淡入方式显示的方法
Jan 14 Javascript
JavaScript制作简单的日历效果
Mar 10 Javascript
使用jQuery的load方法设计动态加载及解决被加载页面js失效问题
Mar 01 Javascript
jQuery插件FusionWidgets实现的AngularGauge图效果示例【附demo源码】
Mar 23 jQuery
vue中的自定义分页插件组件的示例
Aug 18 Javascript
vue插件实现v-model功能
Sep 10 Javascript
node.js中 mysql 增删改查操作及async,await处理实例分析
Feb 11 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 Document 代码注释规范
2009/04/13 PHP
解析php中curl_multi的应用
2013/07/17 PHP
PHP答题类应用接口实例
2015/02/09 PHP
PHP对称加密算法(DES/AES)类的实现代码
2017/11/14 PHP
Laravel5.4框架使用socialite实现github登录的方法
2019/03/20 PHP
PHP基于timestamp和nonce实现的防止重放攻击方案分析
2019/07/26 PHP
复制Input内容的js代码_支持所有浏览器,修正了Firefox3.5以上的问题
2010/06/21 Javascript
理清apply(),call()的区别和关系
2011/08/14 Javascript
js写一个弹出层并锁屏效果实现代码
2012/12/07 Javascript
推荐4个原生javascript常用的函数
2015/01/12 Javascript
JavaScript移除数组内重复元素的方法
2015/03/18 Javascript
JavaScript中数据结构与算法(四):串(BF)
2015/06/19 Javascript
基于Node.js实现nodemailer邮件发送
2016/01/26 Javascript
Angular ng-repeat 对象和数组遍历实例
2016/09/14 Javascript
浅谈JavaScript的自动垃圾收集机制
2016/12/15 Javascript
微信小程序 弹幕功能简单实例
2017/02/14 Javascript
es6+angular1.X+webpack 实现按路由功能打包项目的示例
2017/08/16 Javascript
js实现数组内数据的上移和下移的实例
2017/11/14 Javascript
Angularjs实现数组随机排序的方法
2018/10/02 Javascript
jQuery实现的模仿雨滴下落动画效果
2018/12/11 jQuery
详解JavaScript中关于this指向的4种情况
2019/04/18 Javascript
微信小程序和百度的语音识别接口详解
2019/05/06 Javascript
js实现for循环跳过undefined值示例
2019/07/02 Javascript
layui使用form表单实现post请求页面跳转的方法
2019/09/14 Javascript
JS实现贪吃蛇游戏
2019/11/15 Javascript
详解Python3.6安装psutil模块和功能简介
2018/05/30 Python
python实现的接收邮件功能示例【基于网易POP3服务器】
2019/09/11 Python
python实现广度优先搜索过程解析
2019/10/19 Python
使用HTML5 IndexDB存储图像和文件的示例
2018/11/05 HTML / CSS
SteelSeries赛睿官网:游戏外设和配件的领先制造商(耳机、键盘、鼠标和鼠标垫)
2018/06/17 全球购物
三星法国官方网站:Samsung法国
2019/10/31 全球购物
经济管理专业自荐信
2013/12/30 职场文书
2014银行领导班子群众路线对照检查材料思想汇报
2014/09/17 职场文书
党员教师四风问题对照检查材料
2014/09/26 职场文书
2015年社区科普工作总结
2015/05/13 职场文书
幼儿园安全教育随笔
2015/08/14 职场文书