vue-编程式跳转-基本跳转

需求:点击按钮跳转

编程式导航:利用js进行跳转,以前学js的时候就是根据location.href进行跳转||

第一种:path路径跳转

第二种

name命名跳转,

那我们之前,点击搜索,不仅仅是要跳转,还要传参

我们用既然要搜索,那么肯定要往输入框里放任意的值,所以放在data里创建一个数据

在事件函数里通过this模板字符串的方式去使用

那么怎么获取呢?

参数多了也可以用上述的写法,但是不方便,所以用对象的写法来写,所以完整的写法更适合传参

二、动态路由传参

name命名的编程式query传参写法

name命名的编程式动态路由传参

确实,路由跳转的方式看起来很多,容易记混。我来帮你**简化记忆**:

一句话总结

> **声明式** = 标签跳转(`<router-link>`)

> **编程式** = JS 代码跳转(`$router.push()` 等)


对比表格

| 类型 | 写法 | 使用场景 |

|------|------|----------|

| **声明式** | `<router-link to="/about">关于</router-link>` | 模板中的链接按钮 |

| **编程式** | `this.$router.push('/about')` | 登录成功后跳转、点击事件等 |


编程式导航的 4 种写法(其实只有 1 个核心)

```javascript

// 1. 字符串路径

this.$router.push('/search')

// 2. 路径对象

this.$router.push({ path: '/search' })

// 3. 命名路由(推荐)

this.$router.push({ name: 'search' })

// 4. 带参数

this.$router.push({ path: '/search', query: { key: 'abc' } })

this.$router.push({ name: 'search', params: { id: 123 } })

```

**核心记忆**:就记 `this.$router.push()`,里面的写法跟 `<router-link :to="...">` 一模一样。


其他常用编程式方法

```javascript

// 前进/后退

this.$router.go(1) // 前进1步

this.$router.go(-1) // 后退1步

this.$router.back() // 后退

// 替换当前历史记录(不能后退)

this.$router.replace('/search')

```


记忆技巧

> **声明式**:`<router-link>` 像 `<a>` 标签

> **编程式**:`$router.push()` 像 `window.location.href`

**不用背全部,记 `push` 就够了**,遇到需要 `replace`、`go` 时再查。

所以我们在做这种搜索跳转问题的时候,也就是编程式导航问题的时候

我们第一步要想到,是用path跳转还是name的方式跳转,;路径短用path

如果用path跳转时query方式传参,还是动态路由的方式传参,有多个参数的时候适合用query传参

编程式导航和声明式导航,都支持查询参数(query)和动态路由参数(params)两种传参方式。

但是,具体的语法写法 决定了你是否能使用 params 对象。

    • 字符串语法:两者都支持(需要手动拼在 URL 中)。

    • 对象语法:只有 name 写法同时支持 params 和 query;path 写法只支持 query,不支持 params。

所以最稳妥、最推荐的做法是:使用 name + params + query,无论在声明式还是编程式导航中。

相关推荐
Highcharts.js1 小时前
智能数据分析组件Orbit 正式发布与快速上手体验教程
前端·人工智能·信息可视化·数据分析系统·highcharts·orbit·智能可视化
Dream-Y.ocean1 小时前
鸿蒙PC平台星图遥感适配实战:基于 Electron 壳方案的纯 JavaScript 遥感图像处理引擎开发
javascript·electron·harmonyos
螺丝钉tina2 小时前
[Playwright ][16]Playwright + TypeScript API 自动化测试实战:API测试
前端·javascript·typescript
小天源2 小时前
智叟云集系统 · 架构与职责分层
服务器·前端·数据库
Highcharts.js4 小时前
React 中原生支持使用 JSX 组件配置自定义表格 Highcharts Grid
前端·javascript·react.js·前端框架·jsx·highcharts·自定义表格
Java后端的Ai之路4 小时前
【AIAgent开发】-Agent工具封装成CLI(纯干货!!!)
java·javascript·人工智能·agent·cli
薛定谔的猫-菜鸟程序员4 小时前
Electron开发超详细教程(从入门到放弃)
前端·javascript·electron
最强小杰5 小时前
DeepSeek V4 Flash + Codex CLI 接入教程:原生 Responses API 适配,从配置到跑通收藏这篇就够了(2026)
java·前端·python·ai
静水leo5 小时前
使用 Whistle 拦截接口并模拟后端响应
前端
掘金者阿豪5 小时前
SQL Server数据迁移完成后,凌晨的数据库告警该怎么查?
前端·后端