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

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.lryc.cn/news/474147.html

相关文章:

  • 如何解决mingw64安装后配置完环境变量仍然执行不了gcc命令以及Vscode中的环境路径配置中找不到gcc
  • 3-petalinux2018.3 摸索记录 - 命令驱动 _ 交叉编译链
  • 【二分查找】——模板
  • 从可逆计算看DSL的设计要点
  • axios竟态问题
  • 如何批量注册多个Outlook邮箱账号并避免关联
  • 如何在安卓設備上設置全局代理?
  • 操作系统实验记录
  • FastAPI 路径参数详解:动态路径与数据校验的灵活实现
  • 【STM32】SD卡
  • 我一口气记录下整个接口自动化测试过程!
  • 【VS中Git同步提交 报错:访问.vs/FileContentIndex/xxx.vsidx权限不允许】
  • Linux下Nginx的安装与使用
  • 飞机布雷盖航程公式
  • 在K8s平台部署个人博客
  • git入门教程10:git性能优化
  • Redis(2):内存模型
  • 深入解析Diffusion和AsymmDiT:Mochi 1的高效AI视频生成之路
  • VMware capacity mismatch for disk错误解决办法:kb-vuln-1靶机
  • Java Collection/Executor LinkedTransferQueue 总结
  • 阿拉伯国家本地化测试的特点
  • 申请前必知!关于「美国绿卡」的28个常见问题汇总!
  • 2024年十款超好用的图纸防泄密软件精选,十款优秀的图纸防泄密软件推荐
  • 数据库锁机制
  • 呼叫中心系统如何选型?
  • Ubuntu 22.04安装部署
  • KINGBASE部署
  • 探索 ONLYOFFICE:开源办公套件的魅力
  • 如何保护网站安全
  • 抖音矩阵系统开发的技术框架解析,支持OEM