vue3中使用router路由实现跳转传参

大家好,今天和大家分享一下vue3中如何进行跳转并进行传参。

前言

vue3取消了vue2部分api,所以路由跳转和传值的方式会有所不同。

我们今天主要讲router.push(location, onComplete?, onAbort?)

vue3中新增API:useRouter和useRoute

一、路由跳转

1.首先在需要跳转的页面引入API---useRouter

javascript 复制代码
import { useRouter } from 'vue-router'

2.在跳转页面定义router变量

javascript 复制代码
//先在setup中定义
 const router = useRouter()

3.用router.push跳转页面

javascript 复制代码
// 字符串
router.push('home')
// 对象
router.push({ path: 'home' })
// 命名的路由
router.push({ name: 'user', params: { userId: '123' }})
// 带查询参数,变成 /register?userId=123
router.push({ path: 'register', query: { userId: '123' }})

二、页面传参需要注意

1.如果提供了 path,params 会被忽略,但query 没有这种情况,此时需要提供路由的 name 或手写完整的带有参数的 path

javascript 复制代码
const userId = '123'
router.push({ name: 'user', params: { userId }})
router.push({ path: `/user/${userId}` })
// 这里的 params 不生效
router.push({ path: '/user', params: { userId }})

2.上述规则同样适用于 router-link 组件的 to 属性

3.如果目的地和当前路由相同,只有参数发生了改变 (比如从一个用户资料到另一个 /users/1 -> /users/2),你需要使用 beforeRouteUpdate 来响应这个变化 (比如抓取用户信息)

相关推荐
糕冷小美n3 小时前
elementuivue2表格不覆盖整个表格添加固定属性
前端·javascript·elementui
小哥不太逍遥3 小时前
Technical Report 2024
java·服务器·前端
沐墨染3 小时前
黑词分析与可疑对话挖掘组件的设计与实现
前端·elementui·数据挖掘·数据分析·vue·visual studio code
anOnion3 小时前
构建无障碍组件之Disclosure Pattern
前端·html·交互设计
threerocks3 小时前
前端将死,Agent 永生
前端·人工智能·ai编程
问道飞鱼4 小时前
【前端知识】Vite用法从入门到实战
前端·vite·项目构建
爱上妖精的尾巴4 小时前
8-10 WPS JSA 正则表达式:贪婪匹配
服务器·前端·javascript·正则表达式·wps·jsa
Zhencode4 小时前
Vue3响应式原理之ref篇
vue.js
shadow fish5 小时前
react学习记录(三)
javascript·学习·react.js
小疙瘩5 小时前
element-ui 中 el-upload 多文件一次性上传的实现
javascript·vue.js·ui