〖Vue〗小知识- Vue-Router 编程式导航

185 阅读1分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

前文我们学习Vue-Router 的路由传参, 本文来学习 Vue-Router 的编程式导航, 可通过 api 进行不同页面的跳转

Vue-Router 编程式导航

前文我们进行页面的跳转都是使用 <router-link> 这一标签进行跳转的, 另外我们还可以在 JavaScript 代码中进行页面的跳转, 就是使用编程式的导航, 通过相关的 api, 动态实现.

编程式的导航借助了 router 的实例上定义的一些方法 api, 通过编写代码就可以实现跳转了.

在 Vue 实例内部, 即组件内部,你可以通过 $router 访问路由实例。因此可以调用 this.$router.push

下面的这几个就是可用的跳转方法.

  • this.$router.go
  • this.$router.back
  • this.$router.push({'name':名字, params:{a: 10,b: 10}, query:{c: ’ccc’}}
  • this.$router.replace 替换掉的当前路由

说明: this.$router.push 这个方法 会在 history栈中添加传递的参数: 链接地址. 使用这种方法, 在浏览器上点击 后退 按钮, 还可以返回前一个页面.

我们使用 <router-link> 标签进行跳转时, 就是像上面的说明一样, 在 history 历史记录中添加一个新的记录.

什么是编程式

通过上面的解释, 这样 我们就可以理解什么是 编程式了:

  • router-link 这样跳转就是直接声明式;

  • 而通过路由对象的几个方法进行页面跳转 就是 编程式

其他的跳转方法

上面说的 this.$router.push 是向 history 添加一项新的, 所以可以后退,

另外 router 对象上还有一个 this.$router.replace. 这个replace会直接替换掉当前的路由, 所以就不能后退了.

参考

其他更多方法可参考官方文档: Vue-Router 官方文档: