首页 经验

vue $route 和 $router 的区别

时间: 2024-10-21 11:09:03

(部分内容来自网络,其真实性存疑,为了避免对您造成误导,请谨慎甄别。)

在 Vue 和 Vue Router 的上下文中,$route$router 是两个非常重要的对象,虽然它们经常一起使用,但各自承担不同的角色。


$route


- 定义$route 是一个对象,表示当前路由的信息。

- 包含的属性

  - path: 当前路由的路径。

  - params: 路由参数(当使用动态路由时)。

  - query: URL 查询参数。

  - hash: URL 的哈希部分。

  - name: 路由名称(如果有的话)。

  - meta: 路由的元信息(通常用于权限验证、标记等)。

  - matched: 当前路由的所有匹配的路由记录(数组)。

- 用途:用于获取当前路由的信息,常用于条件渲染、动态导航、获取传递的参数等。


示例


javascript

// 在 Vue 组件中

export default {

  computed: {

    currentPath() {

      return this.$route.path; // 获取当前路由路径

    },

    queryParams() {

      return this.$route.query; // 获取查询参数

    }

  }

};


$router


- 定义$router 是 Vue Router 的实例,提供导航功能。

- 包含的属性和方法

  - push(): 用于导航到一个新路由,增加一个新的历史记录。

  - replace(): 替换当前路由,不会记录到历史记录中。

  - go(): 跳转到指定的历史记录位置。

  - back(): 返回到上一个路由。

  - forward(): 前进到下一个路由。

  - beforeEach(), afterEach(): 设置全局的导航守卫。

- 用途:用于程序化导航,即通过代码控制路由的跳转。


示例


javascript

// 在 Vue 组件中

export default {

  methods: {

    goToHome() {

      this.$router.push('/'); // 导航到根路由

    },

    goToUser(userId) {

      this.$router.push({ path: /user/${userId} }); // 导航到动态路由

    }

  }

};


总结


- this.$route:用于获取当前路由的状态和信息(读取)。

- this.$router:用于程序化控制路由跳转和导航(写入)。


理解它们的区别有助于你在 Vue 应用中有效地管理路由和导航。


上一个 vue params和query的区别(怎么定义 vue-router 的动态路由? 怎么获取传过来的值?) 文章列表 下一个 前端如何实现跨域?

最新

工具

© 2019-至今 适观科技

沪ICP备17002269号