vue 跳转页面-$router.resolve和$router.push区别

打开方式

javascript 复制代码
router.push 只能当前窗口打开

router.resolve 结合 window.open 可以新窗口打开

参数传递

javascript 复制代码
router.push 支持query和params

router.resolve 只支持query,若需地址栏参数不可见,需结合localStorage或第三方插件保存

this.$router.push

javascript 复制代码
// 地址栏里带参
this.$router.push({
  path: '这里是path',
  query: {
    a: 1,
  },
});

// 地址栏里不带参
this.$router.push({
  name: '这里是name',
  params: {
    a: 1,
  },
});

注:

this.$ router.push用query传参对象时需注意的地方

用函数式编程this.$router.push跳转,用query传递一个对象时要把这个对象先转化为字符串,然后在接收的时候要转化为对象,要不然会接收不到参数。要不就把参数分开传递,不要放到对象里。

javascript 复制代码
this.$router.push({
    path: '/liveing',
    query: {
        routeParams: JSON.stringify({ liveUrl: url, flag: 2 })
    }
});

接收:

javascript 复制代码
let routeParams = JSON.parse(this.$route.query.routeParams)
this.currMeetingUrl = routeParams.liveUrl; 
this.obcject = routeParams.flag;

第二种方法:不要套在对象里直接传递

javascript 复制代码
this.$router.push({
    path: '/liveing',
    query: {
        liveUrl: url, 
        flag: 2
    }
});

接受:

javascript 复制代码
let liveUrl = this.$route.query.liveUrl;
let flag = this.$route.query.flag;

this.$router.resolve

javascript 复制代码
// 地址栏里带参
let data = this.$router.resolve({
  path: "/channel_sms",// 或者 name: 'channel_sms',
  query: {
    a: 1,
  },
});
window.open(data.href, '_blank');

// 地址栏里不带参
let data = this.$router.resolve({
  name: 'channel_sms',
});
localStorage.setItem('a', 1);
// 然后跳转页接收 localStorage.getItem('a');
相关推荐
加勒比海涛28 分钟前
ElementUI 布局——行与列的灵活运用
前端·javascript·elementui
你不讲 wood31 分钟前
postcss 插件实现移动端适配
开发语言·前端·javascript·css·vue.js·ui·postcss
前端小程1 小时前
使用vant UI实现时间段选择
前端·javascript·vue.js·ui
whyfail1 小时前
React 事件系统解析
前端·javascript·react.js
禾苗种树1 小时前
element form rules 验证数组对象属性时如何写判断规则
javascript·vue.js·elementui
liangshanbo12151 小时前
JavaScript 中的一些常见陷阱
开发语言·javascript·ecmascript
Bulut09071 小时前
Vue的slot插槽(默认插槽、具名插槽、作用域插槽)
vue.js·具名插槽·slot插槽·默认插槽·作用域插槽
小tenten2 小时前
js延迟for内部循环方法
开发语言·前端·javascript
程序员大金2 小时前
基于SpringBoot+Vue+MySQL的垃圾分类回收管理系统
java·vue.js·spring boot·后端·mysql·mybatis
幻影浪子3 小时前
Web网站常用测试工具
前端·测试工具