Vue3中vue-router的使用方法详解

 更新时间:2023年06月18日 15:45:30   作者:Saga Two  
Vue Router 是 Vue 的官方路由,它与 Vue.js 核心深度集成,让用 Vue.js 构建单页应用变得轻而易举,本文将通过简单的示例为大家介绍一下vue-router的使用,需要的可以参考一下

1 介绍

Vue 很适合用来构建单页面应用。对于大多数此类应用,都推荐使用官方支持的Vue Router;在单页面应用(Single-page application)中,客户端的 JavaScript 可以拦截页面的跳转请求,动态获取新的数据,然后在无需重新加载的情况下更新当前页面。这样通常可以带来更顺滑的用户体验,因为这类场景下用户通常会在很长的一段时间中做出多次交互。这类的单页面应用中,路由的更新是在客户端执行的。

Vue Router 是 Vue 的官方路由。它与 Vue.js 核心深度集成,让用 Vue.js 构建单页应用变得轻而易举。功能包括:

  • 嵌套路由映射
  • 动态路由选择
  • 模块化、基于组件的路由配置
  • 路由参数、查询、通配符
  • 展示由 Vue.js 的过渡系统提供的过渡效果
  • 细致的导航控制
  • 自动激活 CSS 类的链接
  • HTML5 history 模式或 hash 模式
  • 可定制的滚动行为
  • URL 的正确编码

以下我们来介绍Vue Router的基本使用。

2 Vue Router的使用

2.1 安装

对于vue3,我们推荐使用vue-router 4.x及以上版本。node环境安装如下:

npm install vue-router@4

2.2 引入

在我们工程项目中,路由文件通常需要单独管理,以便于后续的使用以及维护。再此基础下,我们引入分为两步:

  • 创建统一管理路由入口文件
  • vue项目引入使用路由入口文件

2.2.1 创建路由文件

在与main.ts文件的同级目录下创建router文件夹,并添加index.ts文件(使用ts,若使用js也同理)。

文件内容如下:

import { createRouter, createWebHistory, RouteRecordRaw } from "vue-router";
import Home from "../views/Home.vue";
// 项目其他页面路由(推荐使用)
import Practice from "../router/practiceFolder/practice";
// vue项目自带路由
const routes: Array<RouteRecordRaw> = [
  {
    path: "/",
    name: "Home",
    component: Home
  },
  {
    path: "/about",
    name: "About",
    component: () =>
      import(/* webpackChunkName: "about" */ "../views/About.vue")
  }
];
const routers = [...routes, ...Practice];
const router = createRouter({
  history: createWebHistory(process.env.BASE_URL),
  routes: [...routes, ...Practice]
});
export default router;

其中,使用RouteRecordRaw声明的对象会被当做路由对象,放入到路由对象池里。

createRouter创建路由;

createWebHistory代表路由使用 HTML5 模式,也是推荐使用的模式;

2.2.2 main.ts 引入

代码如下:

import { createApp } from "vue";
import App from "./App.vue";
import router from "./router";
import store from "./store";
createApp(App)
  .use(store)
  .use(router)
  .mount("#app");

2.3 使用

2.3.1 router-view使用

入之后我们单页面应用可以在app.vue配置使用router-view来切换页面,代码如下:

<template>
  <router-view v-slot="{ Component }">
  </router-view>
</template>

引入之后,在 Vue 实例中,你可以通过 $router 访问路由实例,若想要导航到不同的 URL,使用this.$router.push(...)进行跳转

详细的router-view使用方法可见vue router-view使用详解

2.3.2 router-link使用

当使用 <router-link> 时,内部会调用router.push(...)这个方法,所以点击 <router-link :to="..."> 相当于调用 router.push(...)

2.3.3 在 setup 中访问路由和当前路由

因为我们在 setup 里面没有访问 this,所以我们不能再直接访问 this.$router 或 this.$route。作为替代,我们使用 useRouter 和 useRoute 函数:

import { useRouter, useRoute } from 'vue-router'
export default {
  setup() {
    const router = useRouter()
    const route = useRoute()
    function pushWithQuery(query) {
      router.push({
        name: 'about',
        query: {
          ...route.query,
        },
      })
    }
  },
}

2.4 其他API

除以上介绍的Vue Router基本API,还有如下API可供使用:

  • NavigationFailureType: 导航失败类型
  • START_LOCATION: 默认开始位置
  • createMemoryHistory: 使用记忆历史模式
  • createRouterMatcher:
  • createWebHashHistory: 创建哈希模式
  • createWebHistory: 创建html5模式
  • isNavigationFailure: 导航是否失败
  • onBeforeRouteLeave: 导航守卫,setup中使用,在当前位置的组件将要离开时触发。
  • onBeforeRouteUpdate: 导航守卫,setup中使用,在当前位置即将更新时触发。
  • parseQuery: 解析query参数
  • stringifyQuery: 字符串query参数
  • useLink: 将RouterLink 的内部行为作为一个组合式 API 函数公开。
  • useRoute: 替代this.$route
  • useRouter: 替代this.$router

本文参考官网,进行vue3路由配置实际操作,更加全面的使用请参考官网vue router

到此这篇关于Vue3中vue-router的使用方法详解的文章就介绍到这了,更多相关Vue3 vue-router内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • element表格变化后自动刷新的两种方案

    element表格变化后自动刷新的两种方案

    本文主要介绍了element表格变化后自动刷新的两种方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • Vue+java实现时间段的搜索示例

    Vue+java实现时间段的搜索示例

    本文主要介绍了Vue+java实现时间段的搜索示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • vue+koa2搭建mock数据环境的详细教程

    vue+koa2搭建mock数据环境的详细教程

    这篇文章主要介绍了vue+koa2搭建mock数据环境的方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05
  • vue+iview+less+echarts实战项目总结

    vue+iview+less+echarts实战项目总结

    本篇文章是作者通过学习vue+iview+less+echarts制作一个小系统后,做的心得以及遇到的坑的总结,值得大家学习参考。
    2018-02-02
  • vue axios接口请求封装方式

    vue axios接口请求封装方式

    这篇文章主要介绍了vue axios接口请求封装方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-01-01
  • Vue安装与使用

    Vue安装与使用

    Vue是一套用于构建前后端分离的框架。刚开始是由国内优秀选手尤雨溪开发出来的,目前是全球“最”流行的前端框架。使用vue开发网页很简单,并且技术生态环境完善,社区活跃,是前后端找工作必备技能!下面来看看其得安装及使用方法吧
    2021-10-10
  • vue 解决addRoutes动态添加路由后刷新失效问题

    vue 解决addRoutes动态添加路由后刷新失效问题

    这篇文章主要介绍了vue 解决addRoutes动态添加路由后刷新失效问题,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • vue页面加载闪烁问题的解决方法

    vue页面加载闪烁问题的解决方法

    这篇文章主要介绍了vue页面加载闪烁问题的解决方法,文中给大家提到了v-if 和 v-show 的区别,解决vue页面加载时出现{{message}}闪退的两种方法,感兴趣的朋友一起看看吧
    2018-03-03
  • vue axios sessionID每次请求都不同的原因以及修改方式

    vue axios sessionID每次请求都不同的原因以及修改方式

    这篇文章主要介绍了vue axios sessionID每次请求都不同的原因以及修改方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • 基于Vue中使用节流Lodash throttle详解

    基于Vue中使用节流Lodash throttle详解

    今天小编就为大家分享一篇基于Vue中使用节流Lodash throttle详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-10-10

最新评论