当前位置: 首页 > article >正文

Vue3 Router跳转传参

最近遇到这个问题router跳转传参,真是要了老命了。

根据网上各位大神给出的方法,试了

import { useRouter } from 'vue-router'

const router = useRouter()

//1. 无法跳转
router.push(name:'',params:{})

//2. 可以跳转, 但需要在定义router同时定义占位符,比如path:'/user/:userid',否则跳转后收不到值
router.push(path:'',query:{})

1. router.push(name:'',params:{})

params好像已经被移除了,根本无法跳转

2. router.push(path:'', query:{})

可以跳转,但是定义router的同时需要定义占位符,比如path:'/user/:id',而且参数会以/user/1001的形式显示在URL中

const routes = [
    {
        path:'/user/:id',
        name:User,
        component:User
    }
  ]

最后仔细翻看官网,使用了官网推荐的状态管理才得以解决,但是仍有其他问题,最后会讲

如上图,新建一个store.js,用于保存你跳转时想要保存的值,比如:

import { reactive } from 'vue'

export const store = reactive({
  userinfo: {
    name: '',
    id: ''
  }
})

假设我们想要从A.vue跳转到B.vue,那么

A.vue:

import { store } from '../store/store.js'

//赋值
store.userinfo.id= 1001
//跳转
router.push('/B')

B.vue

import { store } from '../store/store.js'

let userId = store.userinfo.id //接受值

注意:router跳转不是传统意义的从一个html跳转到另外一个html,所以一旦刷新整个页面,store里面的值就没有了,需要重新赋值!比如这里跳转到B.vue后,如果刷新页面,store.userinfo.id就变成空字符串了。


http://www.kler.cn/a/155883.html

相关文章:

  • 淘宝代购系统;海外代购系统;代购程序,代购系统源码PHP前端源码
  • 测试工程师简历「精选篇」
  • 从社交媒体到元宇宙:Facebook未来发展新方向
  • MySQL系列之如何在Linux只安装客户端
  • 微服务(二)
  • MySQL数据库:SQL语言入门 【下】(学习笔记)
  • Vmware17虚拟机安装windows10系统
  • Android跨进程通信,RPC,IPC
  • DBS note7 (end):DB Design
  • 根文件系统构建-对busybox进行配置
  • java中如何将mysql里面的数据取出来然后通过stream流的方式进行数据处理代码实例?
  • 论文阅读——Loss odyssey in medical image segmentation
  • 1.1、Autosar_CP软件集群设计与集成指南说明
  • CentOS7搭建部署NTP服务器
  • 外观模式 rust和java的实现
  • 长度最小的子数组(Java详解)
  • PCL 点云加权均值收缩
  • 【深度学习】神经网络训练过程中不收敛或者训练失败的原因
  • MDETR 论文翻译及理解
  • 搭建 ebpf 开发测试环境
  • 行首行尾的处理
  • 笔记二十二、使用路由state进行传递参数
  • JavaEE 多线程
  • C语言面试之数组指针上篇
  • JS前端逆向
  • 设计模式之原型模式(2)--深拷贝的实现图文讲解