vue3.0 router路由跳转传参(router.push)

2023-05-16

vue3.0取消了2.0部分api,所以路由跳转传值方式有所不同。

这里主要讲编程式导航,也就是router.push(location, onComplete?, onAbort?)

vue3.0新增API:useRouter和useRoute

一.路由跳转

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

import { useRouter } from 'vue-router'

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

 const router = useRouter()

3.用router.push跳转页面

// 字符串
router.push('home')

// 对象
router.push({ path: 'home' })

// 命名的路由
router.push({ name: 'user', params: { userId: '123' }})

// 带查询参数,变成 /register?userId=123
router.push({ path: 'register', query: { userId: '123' }})

4.如果有参数的话,在接收页面引入API–useRoute

import { useRoute } from 'vue-router'

5.在接收页面定义变量route,获取传过来的变量

//query
let userId=route.query.userId;

//params
let userId=route.params.userId;

二.页面传参需要注意的问题

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

const userId = '123'
router.push({ name: 'user', params: { userId }}) // -> /user/123
router.push({ path: `/user/${userId}` }) // -> /user/123
// 这里的 params 不生效
router.push({ path: '/user', params: { userId }}) // -> /user

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue3.0 router路由跳转传参(router.push) 的相关文章

  • 如何将变更集保留在 hg 推送的“草稿”阶段?

    我如何阻止 Mercurial 将变更集置于推送操作的 公开 阶段 我希望他们保持 草案 我经常进行 rebase 和 histedit 并且我推送到的存储库仅供我使用 而且必须一直改变相位是一件很麻烦的事 文档没有明确揭示的是 推送上的相
  • emberjs:如何在视图中触发自定义事件

    我想将原始事件 单击 转换为语义事件 例如 deleteTodo 这是描述的here http emberjs com guides views 但不知道如何实施 我有以下代码 App TodoView Em View extend cli
  • Ajax推送系统

    在我自己的系统中 我有一个PHP页面显示我通过在线网上商店出售的所有商品 从最新交易到第一笔交易 我希望每当人们从我这里购买东西时 此页面就会自动更新 我可以做AJAX打电话给每个5几秒钟来检查我数据库中的订单 但这似乎是 1980 年 或
  • 有条件地禁用 Angular 中的路由器链接

    我在 Angular 项目 使用 Angular 2 中有许多链接 类似于 a Link a 我想根据上下文 状态禁用其中一些 通过更改颜色并防止操作发生 对于样式 我已添加到链接 class disabled isValidLink 这让
  • 使用 iOS Storyboard Seque“模型”或“推送”样式时是否存在内存泄漏(或对象的过度实例化)?

    假设我正在开发一个简单的 iPhone 应用程序 有两个屏幕 登录屏幕和注册屏幕 在登录屏幕中 它有一个 注册 按钮 可进入注册屏幕 同样 在注册屏幕中 它有一个 登录 按钮 可以进入登录屏幕 全部都是使用 iOS Storyboard S
  • 以编程方式更改无线路由器设置 - Netgear 理想的选择

    是否可以使用 C 以编程方式更改 Netgear 无线路由器上的设置 我有经常更改的设置 我想创建自己的界面来进行这些更改 目前 我导航到管理网页 10 0 0 1 它提示我输入用户名和密码 身份验证后 我可以使用 Web 界面更改路由器的
  • 使用 GitHub GUI 提交和同步,一切都消失了

    因此 在 GitHubGUI 中 像往常一样 我进行了更改 然后单击Commit Sync短暂地弹出 合并冲突 对话框 然后一切都消失了 我将最新的更改与远程存储库同步 我所做的一切都消失了 以前在我不断点击后也发生过这种情况commit
  • 本地硬重置后无法推送到原点

    我最近对本地 git 存储库进行了硬重置 换句话说 我将其重置为较早的时间点 现在当我尝试向上推时origin它告诉我不能 因为origin包含比我的存储库晚的工作 这是有道理的 但我不关心源在我的本地存储库之后所做的工作 如果我先pull
  • Nuxt,转换不适用于子路由(使用 NuxtChild 显示)

    我无法为我的子路线进行转换 我有以下页面 pages child id vue child vue index vue 在索引和任何子路由之间导航都会触发转换 但是当从一个子路由导航到另一子路由时 不会发生转换 注意有静态路由 child和
  • 你会推动每一个提交吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我希望有人能给我更多有关使用 git 和远程存储库的详细信息 我还没有使用过远程存储库 您向本地存储库提交较小的更改 这些更改可能不会太令人震惊
  • AngularJS:使用具有可选参数的 URL 进行路由

    我的 app js 中有一个包含路由的 URL 假设网址是 api opt1 opt2 opt3 users 我希望我的网址在任何情况下都能工作 我应该能够忽略可选参数 opt1 opt2 或 opt3 可能是全部或几个 我怎样才能做到这一
  • 带有 Vue 项目路由的 Azure 静态 Web 应用程序无法正常工作

    我有一个使用 Azure Static Web App 部署的 vue 项目 项目包含路由器 历史模式 功能 它在本地运行完美 但部署到 Azure 路径链接后无法正常工作 例如 当我尝试从浏览器导航访问 mysite com about
  • 如何使用 Erlang 发送推送通知?

    我正在尝试使用 Erlang 向 APNs 发送推送通知 这是我到目前为止想出的代码 module apnstest2 export connect 0 connect gt application start ssl ssl seed s
  • 如何知道所有设备令牌以循环发送推送通知(APNS)?

    我正在尝试使用 php 代码发送给下载我的 iPhone 应用程序的所有令牌 您能告诉我如何发送到多个设备以及如何进入设备令牌循环吗 这是我的代码
  • 无法连接到生产 Apple 推送通知服务器

    我们使用开发认证和 gateway sandbox push apple com 向配置的设备发送通知没有任何问题 但现在我们的应用程序已在商店中 看来我们甚至无法连接到生产 apn 服务器 gateway push apple com 来
  • 服务器推送:彗星 vs 猿?

    我读过一些关于彗星和 APE 的内容 哪一个更好 我希望用户看到其他用户更新的内容 就像谷歌波一样 而在comet中 有2个版本 iframe vs 传统的ajax 有什么区别 哪个更好 我不太明白 Thanks Comet 是一组可用于开
  • 如何修复 Nodejs 中的“无法读取未定义的属性推送”错误?

    我编写了一个简单的应用程序来学习 Nodejs 但是当我在 cmd 中运行 nodemon index js 时出现此错误 类型错误 无法读取未定义的属性 push 应用程序崩溃 启动前等待文件更改 我已遵循 udemy 课程中的所有说明来
  • heroku 应用程序在推送后仍然引用旧文件

    我最近在 Heroku 中遇到了这个非常奇怪的问题 我在本地开发和测试 然后将更改推送到 Heroku 尽管推送的文件已经更改 Heroku 确实识别了它并推送了新文件 但当我查看 Heroku 上的确切网页时 它的行为就好像它仍在使用我刚
  • javascript旋转数组元素[重复]

    这个问题在这里已经有答案了 大家好 我有一个任务 我有一个数组 4 7 3 6 9 我必须创建一个像这样的数组 4 7 3 6 9 9 4 7 3 6 6 9 4 7 3 3 6 9 4 7 7 3 6 9 4 我必须编写一个程序 其中数组
  • 如果使用推送服务关闭应用程序,应用程序会崩溃:parse.com

    我将清单中的接收器替换为我的

随机推荐