Vue使用NProgress

这篇博客介绍了如何在Vue项目中集成NProgress插件,创建页面加载进度条。通过配置NProgress的样式和在Vue实例中调用start()和done()方法,实现了在页面beforeCreate和mounted阶段控制加载进度。此外,还展示了如何自定义加载条的颜色,并给出了在App.vue中添加相应样式的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下载插件:

npm install --save nprogress



main.js:


import NProgress from 'nprogress'
import 'nprogress/nprogress.css'

NProgress.configure({
  easing: 'ease',  // 动画方式
  speed: 500,  // 递增进度条的速度
  showSpinner: false, // 是否显示加载ico
  trickleSpeed: 200, // 自动递增间隔
  minimum: 0.3 // 初始化时的最小百分比
})

Vue.prototype.NProgress=NProgress;


页面上使用:

  beforeCreate(){
  this.NProgress.start();  //加载开始
  },
  mounted() {
    this.NProgress.done(); //加载完成
  },

如果要改变其加载颜色

只要在App.vue写相应的样式即可

<template>
  <div id="app">
    <router-view/>
  </div>
</template>

<script>
export default {
  name: 'App'
}
</script>

<style>

#app {
  font-family: 'Avenir', Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  margin-top: 60px;
}
 #nprogress .bar {
      background: #66b1ff !important; 
    }
</style>

### 集成和配置 NProgress #### 安装依赖包 为了在 Vue 项目中使用 `NProgress`,首先需要安装必要的 npm 包。通过命令行工具执行以下指令来安装: ```bash npm install nprogress --save ``` #### 引入并初始化 NProgress 在项目的入口文件 `main.js` 中引入 `NProgress` 插件及其 CSS 文件[^2]。 ```javascript // main.js import NProgress from 'nprogress'; import 'nprogress/nprogress.css'; // 初始化配置 NProgress.configure({ easing: 'ease', speed: 500, showSpinner: false, }); ``` #### 创建进度管理模块 对于更复杂的场景,在 `src/utils/progress.ts` 下创建一个新的 TypeScript 或 JavaScript 文件用于封装进度条的操作逻辑[^3]。 ```typescript // src/utils/progress.ts import NProgress from 'nprogress'; export function startLoading() { NProgress.start(); } export function endLoading() { NProgress.done(); } ``` #### 结合路由守卫控制进度条状态 为了让进度条能够随着页面切换而自动展示与隐藏,可以在应用级别的导航守卫里调用上述定义的方法[^1]。 ```javascript // router/index.js or equivalent file where routes are defined const router = new Router({...}); router.beforeEach((to, from, next) => { // 开始加载前触发 startLoading(); next(); }); router.afterEach(() => { // 页面跳转完成后触发 endLoading(); }); ``` 这样就完成了整个集成过程,当用户浏览不同页面时会看到顶部有平滑过渡的效果提示当前正在载入新内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值