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

router.push()

下面,我们来系统的梳理关于 Vue Router router.push() 的基本知识点:


一、router.push() 核心概念

1.1 什么是 router.push()

router.push() 是 Vue Router 提供的编程式导航方法,用于在 JavaScript 中以编程方式导航到新的 URL,同时向浏览器的历史记录栈添加一条新记录。

1.2 与声明式导航的对比

特性<router-link> (声明式)router.push() (编程式)
使用场景模板中直接使用JavaScript 代码中使用
灵活性基本导航需求复杂导航逻辑
事件处理通过点击触发可在任何事件或条件中触发
历史记录添加新记录添加新记录
参数传递支持支持更复杂的参数组合

1.3 核心作用

  1. 导航到新路由:改变当前 URL 并渲染对应组件
  2. 添加历史记录:用户可通过浏览器后退按钮返回
  3. 传递参数:支持路径参数、查询参数和哈希
  4. 条件导航:在导航前执行验证逻辑

二、基本使用方法

2.1 字符串路径

// 导航到绝对路径
router.push('/home')// 导航到相对路径
router.push('about') // 基于当前路径// 带查询参数
router.push('/search?query=vue')

2.2 对象形式(推荐)

// 使用路径
router.push({ path: '/user/123' })// 使用命名路由
router.push({ name: 'userProfile', params: { id: 123 } })// 带查询参数
router.push({path: '/register',query: { plan: 'premium' }
})// 带哈希值
router.push({ path: '/about', hash: '#team' })

2.3 带参数的命名路由

// 定义路由
{path: '/user/:id',name: 'user',component: User
}// 导航方式
router.push({ name: 'user', params: { id: 123 } })// 错误:提供 path 时 params 会被忽略
router.push({ path: '/user', params: { id: 123 } }) // -> /user

三、参数传递详解

3.1 路径参数 (params)

// 路由配置
{ path: '/user/:id', name: 'user', component: User }// 导航
router.push({ name: 'user', params: { id: 123 } }) // -> /user/123// 在组件中访问
this.$route.params.id // 123

3.2 查询参数 (query)

// 导航
router.push({path: '/search',query: { q: 'vue', page: 2 }
}) // -> /search?q=vue&page=2// 在组件中访问
this.$route.query.q // 'vue'
this.$route.query.page // '2'

3.3 哈希 (hash)

router.push({path: '/documentation',hash: '#installation'
}) // -> /documentation#installation// 在组件中访问
this.$route.hash // '#installation'

3.4 参数组合使用

router.push({name: 'productDetail',params: 
http://www.xdnf.cn/news/14406.html

相关文章:

  • 疗愈经济崛起:如何把“情绪价值”转化为医疗健康产品?
  • 我的研究方向是关于联邦学习的数据隐私保护,这些都是我在学校过程中遇到的困惑,借助ai来解决我的问题,也分享给大家。联邦学习的公开数据集,数据集的使用方法等
  • 《解码SCSS:悬浮与点击效果的高阶塑造法则》
  • 电影院管理系统的设计与实现
  • O - 方差
  • 【项目实训】【项目博客#06】大模型微调与推理优化(4.21-5.11)
  • Velocity提取模板变量
  • 项目三 - 任务7:开发名片管理系统
  • SCAU大数据技术原理期末复习|第10、11章
  • ansible模块使用实践
  • UnityDots学习(六)
  • 手动 + 自动双方案组合:Innocise 壁虎吸盘灵活适配多场景无损搬运需求
  • 谷歌浏览器编译windows版本
  • Vue3相关知识1
  • STM32 HAL库学习 RNG篇
  • 编译链接实战(32)动态库的本质和原理
  • 循环神经网络及其变体
  • 数据库核心技术深度剖析:事务、索引、锁与SQL优化实战指南(第六节)-----InnoDB引擎
  • 软件设计模式入门
  • 力扣Hot100每日N题(17~18)
  • Vue学习001-创建 Vue 应用
  • anaconda安装教程
  • 板凳-------Mysql cookbook学习 (十--7)
  • 使用pinia代替vuex处理登录流程
  • 什么是扩展运算符?有什么使用场景?
  • 强化学习怎么入门?
  • Vue3 跨多个组件方法调用:简洁实用的解决方案
  • 人工智能基础知识笔记十:降维技术
  • cache的学习
  • 扣子开发平台 Agent 开发教程(一)