首页 > 其他分享 >Vue Router 之 router.push 和 router.resolve 页面跳转简单记录

Vue Router 之 router.push 和 router.resolve 页面跳转简单记录

时间:2023-03-09 11:44:20浏览次数:43  
标签:传参 Vue name 跳转 params query push router

params和query传参的区别
params传参只能通过 name 引入路由,如果写成path:‘/xxx’,获取的参数是 undefined,获取方式:this.$route.params
query传参name和path二者都可正常获取, 获取方式:this.$route.query
params相当于post请求,参数不会显示在地址栏; query相当于get传参,可以在地址栏看到参数
路由跳转时推荐使用name的方式,因为路径可能会变,但名字一般是由具体含义的,一般不会变,写起来也简单一些

强调: ⚠️:使用params传参必须通过name引入,不能通过path引入

params传参
// 使用params传参,使用name
this.$router.push({
name: 'Login',
params: {
id: '2022-10-13'
}
})
// 获取参数
this.id = this.$route.params.id

query传参
// 使用query传参,通过name和path都能获取
this.$router.push({
path: '/Home',
query: {
name: '我是通过url传递参数的'
}
})
// 获取参数
this.name = this.$route.query.name

 

正文
打开方式
router.push 只能当前窗口打开

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

参数传递
router.push 支持query和params

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

示例
router.push
// 地址栏里带参
this.$router.push({
path: '这里是path',
query: {
a: 1,
},
});

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

router.resolve
// 地址栏里带参
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');

 

标签:传参,Vue,name,跳转,params,query,push,router
From: https://www.cnblogs.com/lyf906522290/p/17197777.html

相关文章

  • vue-router SyntaxError: Unexpected token '{' (at xxx.vue:14:8)
    点进去后指向这一行:重新一行一行看,发现是整理代码的时候,以为有一个prop变量用不到,删了,结果在组件模板另一个地方有用。奇怪这类问题为什么编辑器不会提示出来。......
  • Vue nextTick的使用,含案例
    nextTick1、语法:this.$nextTick(回调函数)2、作用:在下一次DOM更新结束后执行其指定的回调3、什么时候用?   当改变数据后,要基于更新后的新DOM进行某些操作时,要在ne......
  • SSM SpringBoot vue药店管理系统
    SSMSpringBootvue药店管理系统登录首页普通管理员管理用户信息管理会员信息管理生产厂商管理类别信息管理药品信息管理进货管理销售信息管理联系我们管理系......
  • vuex-router-sync 源码解析
    vuex-router-sync:路由状态管理,保持vue-router和vuex存储同步。import{sync}from'vuex-router-sync'importrouterfrom'@/router'importstorefrom'@/store'syn......
  • vue computed正确使用方式
    最近面试中,遇到一个小伙子,谈到了vue中的​​computed​​​和​​watch​​区别,最后得到了一个让我瞠目结舌的答案,只用​​watch​​,从不用​​computed​​模板内的......
  • Flask中根据表单中下拉框的选择跳转指定页面
    HomePage.html中存在一个表单:注意:action不写的话,路由默认在/下方,则该路径下方的函数名可以随意取<h4>CompletetheForm</h4><formid="upload_form"method="POST"......
  • vue3
    一、vue2和vue3的区别1、双向数据绑定原理不同vue2:vue2的双向数据绑定是利用ES5的一个API:Object.definePropert()对数据进行劫持,结合发布订阅模式的方式来实现的。vue......
  • vue-自定义指令合集
    v-copy(一键复制)/**需求:实现一键复制文本内容,用于鼠标右键粘贴。*思路:*1、动态创建textarea标签,并设置readOnly属性及移出可视区域*2、将要复制的值赋给text......
  • vue2和vue3的区别
    1.响应式原理vue2使用ES5的API,也就是Object.defineProperty进行数据劫持,结合发布者-订阅者模式实现。vue3使用proxy来实现。2.vue只自支持一个根节点,而vue3支持多个根节......
  • AntDesignVue的时间选择器a-date-picker范围格式化时间
    业务效果图核心代码<template><a-date-pickerv-model='record.payTime'show-timeautoclearplaceholder='请选择付款时间'valueFormat='YYYY-MM-DDHH:mm:ss'......