当前位置: 首页 > article >正文

vue项目中如何在路由变化时增加一个进度条

在 Vue.js 项目中,使用路由(如 Vue Router)时,为了提升用户体验,你可能会想要在路由变化时显示一个进度条。这可以通过多种方式实现,其中一种流行的做法是使用第三方库,如 vue-loading-barnprogress。这里我将介绍如何使用 nprogress 来实现这一功能。

安装 nprogress

首先,你需要安装 nprogress 包:

npm install nprogress --save

引入 nprogress

在你的主文件(通常是 main.jsmain.ts)中引入 nprogress 并设置全局样式:

import Vue from 'vue';
import router from './router'; // 引入你的路由配置
import NProgress from 'nprogress'; // 引入 nprogress
import 'nprogress/nprogress.css'; // 引入 nprogress 的 CSS 文件

// 初始化 NProgress
NProgress.configure({ showSpinner: false }); // 配置 NProgress 的选项

// 使用 Vue Router 的 beforeEach 导航守卫
router.beforeEach((to, from, next) => {
  NProgress.start(); // 开始进度条
  next();
});

// 使用 afterEach 导航守卫
router.afterEach(() => {
  NProgress.done(); // 结束进度条
});

new Vue({
  router,
}).$mount('#app');

解释代码

  • beforeEach 导航守卫:在每次导航开始之前启动进度条。
  • afterEach 导航守卫:在每次导航完成后结束进度条。

这样设置后,每次路由变化时,进度条就会自动显示出来,并在页面加载完成后消失。

自定义进度条样式

如果你希望自定义进度条的样式,可以修改 nprogress/nprogress.css 文件中的样式规则,或者覆盖这些样式以适应你的项目需求。

使用 Vue Loading Bar

如果你更倾向于使用 Vue Loading Bar,安装步骤如下:

npm install vue-loading-bar --save

然后在你的 main.jsmain.ts 中引入并使用它:

import Vue from 'vue';
import LoadingBar from 'vue-loading-bar';
import 'vue-loading-bar/dist/vue-loading-bar.min.css';

Vue.use(LoadingBar);

const router = require('./router').default; // 引入你的路由配置

// 使用 Vue Router 的 beforeEach 导航守卫
router.beforeEach((to, from, next) => {
  LoadingBar.start(); // 开始进度条
  next();
});

// 使用 afterEach 导航守卫
router.afterEach(() => {
  LoadingBar.finish(); // 结束进度条
});

new Vue({
  router,
}).$mount('#app');

在这里插入图片描述


http://www.kler.cn/a/374593.html

相关文章:

  • js动态修改样式(:root)
  • 从0开始的STM32学习之旅:使用中断完成等待型任务(理论部分)
  • 《高频电子线路》 —— 高频谐振功放(2)
  • Netron:神经网络模型可视化工具指南【全网最详细】
  • Flutter鸿蒙next 封装 Dio 网络请求详解:登录身份验证与免登录缓存
  • 计算机科学与技术-毕业设计选题推荐
  • 基于SSM+小程序的宿舍管理系统(宿舍1)
  • 深度学习基础—循环神经网络(RNN)
  • spring中bean的四种创建方式
  • 单向数据流在 React 中的作用
  • docker engine stopped
  • 【力扣 + 牛客 | SQL题 | 每日5题】牛客SQL热题204,201,215
  • 医疗器械设备语音ic芯片方案-选型大全
  • 基于vue、VantUI、django的程序设计
  • nodejs包管理器pnpm
  • 二十七、Python基础语法(面向对象-上)
  • OLAP与OLTP:数据处理系统的两种核心架构
  • Redis-发布/订阅交互模式
  • vue简介
  • 组织如何防御日益增加的 API 攻击面
  • 如何使用java雪花算法在分布式环境中生成唯一ID?
  • 机器学习——自动化机器学习(AutoML)
  • 网络自动化01:netmiko基础、netmiko简单demo
  • 计算机毕业设计——ssm基于java智能选课系统的设计与实现演示录像2021
  • Java学习路线:MyBatis(七)使用注解开发
  • 【云原生】云原生后端:案例研究与最佳实践