vue中页面加载进度条效果的实现

 

有图有真相,上图为页面跳转时显示的进度条。

我们在vue项目中,为了减少首屏加载的时间,通常会开启路由的懒加载。路由懒加载配合gizp确实能帮助我们大大的加快首屏的加载时间。

然而,路由懒加载会使得我们在第一次打开一个新页面的时候,会有一个加载时间。如果在这个时候我们没有一个提示的话,给人的感觉会是好像我点了页面跳转但是没反应。所以,这个时候我们可以加一个进度条来告知用户。

具体实现,我们使用NProgress这个滚动条效果插件。当然了,滚动条你也可以自己写一个简单的。

  • 安装:cnpm install --save nprogress

 

  • main.js中引入:

 

//引入nprogressimport NProgress from 'nprogress'import 'nprogress/nprogress.css' //这个样式必须引入复制代码

 

  • main.js中进行一些配置:

 

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

这里根据自己的需求进行配置。

 

  • 接下来,还是在mian.js中,

 

router.beforeEach((to, from , next) => {
    // 每次切换页面时,调用进度条
    NProgress.start();

    // 这个一定要加,没有next()页面不会跳转的。这部分还不清楚的去翻一下官网就明白了
    next();
});复制代码

 

router.afterEach(() => {  
    // 在即将进入新的页面组件前,关闭掉进度条
    NProgress.done()
})

 --------------------- 
原文:

https://juejin.im/post/5b31e07ef265da599c56165a

 

 

### 实现顶部页面加载进度条 为了在 Vue 项目中集成 `NProgress` 来展示页面加载进度条,需按照以下方式操作: #### 安装依赖库 首先,在项目根目录下通过 npm 或 yarn 安装必要的包。 ```bash npm install nprogress --save ``` 或者使用 Yarn: ```bash yarn add nprogress ``` #### 配置 Main Entry 文件 编辑项目的入口文件 `main.js` 并添加如下代码来初始化和配置 NProgress[^2]: ```javascript import Vue from 'vue' import App from './App.vue' import router from './router' // 导入 NProgress 及其样式表 import NProgress from 'nprogress'; import 'nprogress/nprogress.css'; // 设置不显示默认的小圆圈动画效果 NProgress.configure({ showSpinner: false }); new Vue({ render: h => h(App), router, }).$mount('#app'); ``` #### 添加路由导航守卫 接着修改路由设置中的全局前置与后置钩子函数以便于控制进度条的行为。这通常是在创建路由器实例的地方完成的,比如在一个单独的 JavaScript 文件里定义好后再导入到 main.js 中[^3]。 ```javascript const router = new Router({ routes: [ // ... your route definitions here ... ] }); // 全局前置守卫:当路由即将改变时调用此方法 router.beforeEach((to, from, next) => { NProgress.start(); next(); }) // 全局后置守卫:当路由已经成功更改之后执行该回调 router.afterEach(() => { NProgress.done(); }) ``` 这样就完成了基本的配置工作,每当发生路由变化的时候就会自动显示出一个漂亮的蓝色进度条直到新页面完全渲染完毕为止[^4]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值