需求
在学习用vue做项目中,有这样一个需求,在某个页面中有一个分页组件,组件的功能有一个是点击某一数字,需要往url中push参数,但原来url中可能有其他的参数,也有可能没有其他参数,有可能已经有关于页数的参数,也有可能没有,使用$router.push()
的形式则会覆盖原有的query,因此开始了我的探索之路(可以直接看最后结论)
step 1 (查找其他方法)
主要试图找到其他方法,可以直接添加新参数或者修改已有参数,绕过需要获取已有参数的坑
很明显失败了,一个是没有找到其他方法,二是$router.push()
也没有发现满足我需求的调用方法,因此确定必须要获取原有参数,进行修改或者新增,最后调用$router.push()
完成任务
step 2 (确定思路)
经过思考,我觉得代码逻辑应该是这样:
methods: {
changePage (num) {
var _this = this,
oldQuery = _this.$router.currentRoute.query,
newQuery = _this.getNewQuery(oldQuery, '