【vue-router】useRoute 和 useRouter 的区别

简介: 【vue-router】useRoute 和 useRouter 的区别

引言


在 Vue 3.2 中,Vue Router 提供了一些新的 API 以更好地与 Composition API 集成。其中,useRoute 和 useRouter 是两个重要的函数,用于在组件中访问当前路由信息和路由实例。在本文中,我们将探讨这两个函数的区别,并提供一些示例代码。


官方文档


https://router.vuejs.org/zh/api/#Functions-useRoute


useRoute 函数


useRoute 函数用于在组件中获取当前路由的信息,返回一个包含路由信息的对象。这个函数适用于那些不需要监听路由变化的场景,只是获取当前路由信息的静态数据。

6.png示例代码:

<template>
  <div>
    <!-- 当前路由信息展示 -->
    <h1>当前路由信息</h1>
    <p>路径:{{ route.path }}</p>
    <p>名称:{{ route.name }}</p>
    <!-- 其他路由信息 -->
  </div>
</template>
<script setup lang="ts">
import { useRoute } from 'vue-router';
// 使用 useRoute 函数获取当前路由信息
const route = useRoute();
</script>

在这个示例中,我们使用 useRoute 获取当前路由信息,并在模板中显示了一些路由属性,比如路径和名称。


useRouter 函数


useRouter 函数用于获取路由实例,可以通过它来进行一些动态的路由操作,比如跳转到新的路由。它返回一个包含路由实例的对象。其中包括当前路由信息。

7.png

示例代码:

<template>
  <div>
    <!-- 路由操作 -->
    <h1>路由操作</h1>
    <button @click="navigateToHome">前往首页</button>
  </div>
</template>
<script setup lang="ts">
import { useRouter } from 'vue-router';
// 使用 useRouter 函数获取路由实例
const router = useRouter();
// 处理按钮点击事件,进行路由跳转到首页
const navigateToHome = () => {
  // 使用 router.push 进行路由跳转
  router.push('/');
};
</script>

在这个示例中,我们使用 useRouter 获取路由实例,并通过点击按钮触发 navigateToHome 函数进行路由跳转。


useRoute 和 useRouter 区别


useRoute 主要用于获取当前路由的信息,适用于静态展示当前路由信息的场景。


useRouter 主要用于获取路由实例,适用于需要进行动态路由操作的场景,比如跳转到新的路由。


在一些场景中,我们可能需要同时使用这两个函数,例如在获取当前路由信息的同时,需要进行一些动态的路由操作。


示例代码:

<template>
  <div>
    <!-- 显示当前路由信息 -->
    <h1>Current Route Information</h1>
    <p>Path: {{ route.path }}</p>
    <p>Name: {{ route.name }}</p>
    <!-- 其他路由信息 -->
    <!-- 跳转到 About 页面的按钮 -->
    <button @click="navigateToHome">前往首页</button>
  </div>
</template>
<script setup lang="ts">
import { useRoute, useRouter } from 'vue-router';
// 使用 useRoute 获取当前路由信息
const route = useRoute();
// 使用 useRouter 获取路由实例
const router = useRouter();
// 处理按钮点击事件,进行路由跳转
const navigateToHome= () => {
  // 使用 router.push 进行路由跳转
  router.push('/about');
};
</script>

在这个示例中,我们同时使用了 useRoute 获取当前路由信息和 useRouter 进行路由跳转。


结语


总体而言,useRoute 和 useRouter 是 Vue Router 在 Composition API 中提供的两个重要的函数,它们分别用于获取当前路由信息和路由实例,为我们在组件中更方便地处理路由相关逻辑提供了强大的工具。


开源项目


  • SpringCloud + Vue3 微服务商城


SpringBoot 3+ Vue3 单体权限管理系统

相关文章
|
19天前
|
JavaScript 前端开发 API
Vue 3 中 v-model 与 Vue 2 中 v-model 的区别是什么?
总的来说,Vue 3 中的 `v-model` 在灵活性、与组合式 API 的结合、对自定义组件的支持等方面都有了明显的提升和改进,使其更适应现代前端开发的需求和趋势。但需要注意的是,在迁移过程中可能需要对一些代码进行调整和适配。
100 60
|
3月前
|
JavaScript
在 Vue 3 组件通信方式中,Provide / Inject 与 Vuex 的区别是什么?
在 Vue 3 组件通信方式中,Provide / Inject 与 Vuex 的区别是什么?
182 65
|
2月前
|
JavaScript 前端开发 开发者
Vue v-for 进阶指南:in 与 of 的区别及应用场景 | 笔记
Vue.js 中的 v-for 是强大的遍历指令,但其中的 in 和 of 关键字往往被开发者忽视。尽管它们的用法相似,但适用的场景和数据结构却各有不同。本文将详细探讨 v-for 中 in 和 of 的区别、适用场景以及在实际开发中的最佳使用时机。通过理解它们的差异,你将能够编写更加高效、简洁的 Vue.js 代码,灵活应对各种数据结构的遍历需求。
104 6
|
2月前
|
缓存 JavaScript
Vue 中 computed 与 method 的区别
【10月更文挑战第15天】computed 和 method 是 Vue 中两个重要的选项,它们在功能和特点上存在着明显的区别。理解并合理运用它们的区别,可以帮助我们构建更高效、更具可维护性的 Vue 应用。在实际开发中,要根据具体情况灵活选择使用,以满足不同的需求。
29 2
|
6月前
|
JavaScript 编译器 API
vue2和vue3区别
vue2和vue3区别
101 4
|
5月前
|
JavaScript
Vue中ref创建_基本类型的响应式数据,在Vue2的年代,数据配在data里,Vue3的区别是不把响应数据写在data里,那个数据是响应式的用ref包一下,let name = ref(“张三“)
Vue中ref创建_基本类型的响应式数据,在Vue2的年代,数据配在data里,Vue3的区别是不把响应数据写在data里,那个数据是响应式的用ref包一下,let name = ref(“张三“)
|
5月前
|
前端开发
Vue2和Vue3的区别,在setup中定义的数据,在data(){return中能否定义到},在setup我们不能用this,写在return中可以用this,但是不能在setup否则会报错
Vue2和Vue3的区别,在setup中定义的数据,在data(){return中能否定义到},在setup我们不能用this,写在return中可以用this,但是不能在setup否则会报错
|
3月前
|
前端开发 JavaScript 开发者
React 和 Vue.js 框架的区别是什么?
React 和 Vue.js 框架的区别是什么?
|
2月前
|
缓存 JavaScript Serverless
vue中computed计算属性、watch侦听器、methods方法的区别以及用法
vue中computed计算属性、watch侦听器、methods方法的区别以及用法
126 0
|
3月前
|
JavaScript 前端开发 API
Vue2与Vue3插槽使用的区别及案例
Vue 3在插槽功能上的改进,体现了其对开发体验的持续优化。通过简化API、加强动态特性和提升性能,Vue 3使得插槽的使用更加灵活和高效。这些改进不仅有助于减轻开发者的负担,还为组件之间的高级交互和内容复用打开了新的可能性。随着Vue生态系统的不断成熟,我们有理由相信,Vue将继续为前端开发提供强大且易用的工具。
72 3