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

vue3之声明式和编程式导航

在组件内部,可以使用 r o u t e r 属性访问路由,例如 t h i s . router 属性访问路由,例如 this. router属性访问路由,例如this.router.push(…)。如果使用组合式 API,你可以通过调用 useRouter() 来访问路由器,导入后赋值给变量就行了,如:const router = useRouter();

声明式编程式
<router-link :to=“…”>router.push(…)
<router-link :to=“…” replace>替换路由:router.replace(…)
替换路由或:router.push({ path: ‘/home’, replace: true }),相当于router.replace({ path: ‘/home’ })

编程式router.push(…) 多种写法:

// 字符串路径
router.push('/users/eduardo')

// 带有路径的对象
router.push({ path: '/users/eduardo' })

// 除了 path 之外,你还可以为任何路由提供 name
// 命名的路由,并加上参数,让路由建立 url
// 如果可能的话,使用 `name` 和 `params` 从自动 URL 编码中获益
// 路由将导航到路径 /user/erina
// 所有路由的命名都必须是唯一的。如果为多条路由添加相同的命名,路由器只会保留最后那一条。
router.push({ name: 'user', params: { username: 'eduardo' } })
<router-link :to="{ name: 'user', params: { username: 'erina' }}">
  User
</router-link>

// 带查询参数,结果是 /register?plan=private
router.push({ path: '/register', query: { plan: 'private' } })

// 带 hash,结果是 /about#team
router.push({ path: '/about', hash: '#team' })

// `params` 不能与 `path` 一起使用,如果提供了 path,params 会被忽略
router.push({ path: '/user', params: { username } }) // -> /user

router.push 和所有其他导航方法都会返回一个 Promise,让我们可以等到导航完成后才知道是成功还是失败。

导航横跨历史

// 向前移动一条记录,与 router.forward() 相同
router.go(1)

// 返回一条记录,与 router.back() 相同
router.go(-1)

// 前进 3 条记录
router.go(3)

// 如果没有那么多记录,静默失败
router.go(-100)
router.go(100)

router.push、router.replace 和 router.go 是window.history.pushState,window.history.replaceState 和 window.history.go 的翻版,它们模仿了 window.history 的 API。


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

相关文章:

  • PostgreSQL技术内幕21:SysLogger日志收集器的工作原理
  • WebRTC服务质量(06)- 重传机制(03) NACK找到真正的丢包
  • Linux 中的 mkdir 命令:深入解析
  • FingerprintJS的使用
  • 游戏何如防抓包
  • Linux高性能服务器编程 | 读书笔记 | 12. 多线程编程
  • 远程安全访问JumpServer:使用cpolar内网穿透搭建固定公网地址
  • [python] ETL 工作流程 Prefect
  • 反射与串扰
  • Gin框架 源码解析
  • 图神经网络实战(5)——常用图数据集
  • 计算机毕业设计-基于python的旅游信息爬取以及数据分析
  • 【web世界探险家】HTML5 探索与实践
  • 【SpringBoot3+MyBatis-Plus】头条新闻项目实现CRUD登录注册
  • webpack5零基础入门-12搭建开发服务器
  • Docker 从0安装 nacos集群
  • Linux文件 profile、bashrc、bash_profile区别
  • vivado 物理优化约束、交互式物理优化
  • 权限维持小结
  • 【回溯、分治、Kadane】算法例题
  • 富格林:揭露黑幕套路安全规避风险
  • 嵌入式学习41-数据结构2
  • Java学习笔记:异常处理
  • UE5 GAS开发p30 创建UI HUD 血条
  • 【Anaconda】换源常用命令
  • 风丘电动汽车高压测试方案 助您高效应对车辆试验难题