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');
相关推荐
_阿南_4 小时前
项目中新增给AI制定的代码规范
前端·程序员
名字还没想好☜4 小时前
React 实现暗黑模式切换:localStorage 持久化、SSR 首屏闪烁与跟随系统主题
前端·javascript·react.js·ecmascript·react·next.js
自动化监测Learner5 小时前
主流 Web 端地图引擎对比:选型指南与优劣分析
javascript
console.log('npc')6 小时前
Git 冲突与 AI 协助指南
前端·人工智能·git·大模型
爱学堂IT分享7 小时前
Cesium可视化系统实战课程-Cesium教程学习
前端
糖墨夕7 小时前
理解大语言模型:Agent 的“大脑”
前端·agent
Rain的Java大神之路7 小时前
JavaWeb开发如何解决跨域问题
java·前端·后端·nginx·web安全·面试·运维开发
cpolar技术支持8 小时前
浏览器也能跑本地 AI:用 Transformers.js + WebGPU 做一个最小推理 Demo,cpolar 给同事远程体验
前端·ai·cpolar·webgpu·transformers.js
计算机毕设定制辅导-无忧学长8 小时前
《基于SpringBoot青年公寓出租管理系统的设计与实现》
java·vue.js·spring boot·青年公寓出租管理系统
计算机魔术师9 小时前
OpenAI 发布 GPT-6 Astra:多项基准刷新纪录, cybersecurity 能力达 Critical 阈值
前端