vue路由$router里面的$标识符代表什么

183 阅读2分钟

在 Vue 中,$router 是 Vue Router 实例,而 $ 标识符通常表示该属性或方法是 Vue 实例的内置属性或方法,具有特殊的含义和功能。以下是对 $router 以及 $ 标识符的详细解释:

1. $ 标识符

  • 基本含义

    • 在 Vue 中,以 $ 开头的属性或方法是 Vue 实例的内置属性或方法,这些属性或方法是 Vue 框架提供的,并且在 Vue 实例的作用域内可以直接使用。它们通常提供了一些常用的功能,帮助你实现组件间通信、路由导航、数据操作等。

2. $router 具体解释

  • 功能

    • $router 是 Vue Router 的实例,它提供了一系列方法和属性,用于在 Vue 应用程序中进行路由导航和管理。它允许你在 Vue 组件内进行页面跳转、操作路由历史记录等操作。
  • 常用方法和属性

    • push 方法

      • 用于导航到一个新的 URL,会向历史记录添加一条新的记录。例如:

      收起

      vue

      <template>
        <button @click="goToHome">去首页</button>
      </template>
      
      <script>
      export default {
        methods: {
          goToHome() {
            this.$router.push('/home');
          }
        }
      };
      </script>
      

      在这个例子中,当点击按钮时,使用 this.$router.push('/home') 将用户导航到 /home 路径。

    • replace 方法

      • 类似于 push 方法,但它会替换当前的历史记录,而不是添加新的记录。例如:

      收起

      vue

      <template>
        <button @click="replaceHome">替换为首页</button>
      </script>
      <script>
      export default {
        methods: {
          replaceHome() {
            this.$router.replace('/home');
          }
        }
      };
      </script>
      
    • go 方法

      • 允许你在历史记录中前进或后退,参数为整数,表示前进或后退的步数。例如:

      收起

      vue

      <template>
        <button @click="goBack">后退一步</button>
      </template>
      
      <script>
      export default {
        methods: {
          goBack() {
            this.$router.go(-1);
          }
        }
      };
      </script>
      
    • currentRoute 属性

      • 可以获取当前路由信息,例如当前的路径、参数、查询参数等。例如:

      收起

      vue

      <template>
        <div>当前路径: {{ $router.currentRoute.path }}</div>
      </template>
      

3. 使用场景和注意事项

  • 使用场景

    • 在 Vue 组件中,当你需要进行页面导航或操作路由信息时,可以使用 $router。比如在用户点击按钮或完成某个操作后,跳转到另一个页面,或者根据不同的条件进行不同的页面跳转。
  • 注意事项

    • 尽量避免在模板中直接调用 $router 方法,通常在组件的 methods 中调用,以保持模板的简洁和清晰。
    • 在使用 push 或 replace 方法时,确保提供的路径是正确的,并且考虑路由的配置和权限问题,避免导航到不存在的路由或未授权的路由。

4. 与 $route 的区别

  • $route 主要用于获取当前路由的信息,如 pathparamsquery 等,而 $router 主要用于导航操作,它们是 Vue Router 中两个不同但相关的实例。

总之,$router 是 Vue Router 实例,$ 前缀表示它是 Vue 内置的属性,通过使用 $router 可以方便地在 Vue 组件中实现路由的导航和管理。如果你还有其他问题,欢迎随时向我咨询。