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 写法同时支持 paramsquerypath 写法只支持 query,不支持 params

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

相关推荐
nicole bai9 分钟前
dialog封装
前端·javascript·vue.js
高彬18 分钟前
SAP ECC6.0 对接 C# web Services服务
开发语言·前端·c#·sap
小江的记录本19 分钟前
【CSS】CSS 核心:盒模型、BFC/IFC、Flex/Grid 布局、响应式布局、移动端适配(附《思维导图》)
前端·css·面试·前端框架·tensorflow·html5·xss
Coodor19 分钟前
BS架构下在前端读写超高频UHF标签
前端·超高频·rfid读写器web插件·uhf标签
一晌小贪欢23 分钟前
python-第20天:关键字参数与不定长参数
java·开发语言·前端·python·数据可视化·函数参数·python办公
我命由我1234525 分钟前
JS Mock(Mock 拦截请求的前提、Mock 使用、关闭 Mock)
开发语言·前端·javascript·前端框架·html·html5·js
开开心心就好31 分钟前
手机精确倒计时工具悬浮窗口秒数实时显示
android·前端·javascript·jupyter·智能手机·pdf·html
小江的记录本38 分钟前
【HTML】HTML5 新特性、语义化标签、浏览器渲染流程(附《思维导图》)
前端·css·面试·前端框架·html·css3·html5
风骏时光牛马1 小时前
手机端高效实用技巧,看完直接上手用
前端