怎么用vue实现页面加载时的进度条功能
这篇“怎么用vue实现页面加载时的进度条功能”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么用vue实现页面加载时的进度条功能”文章吧。
先看一张图
如果我们的程序每次页面切换时,顶部也有一个进度条,那会让用户体验提升很大的。
npropgress插件
最简单的使用方式:vue项目的每次路由切换时,都加载进度条
安装
npm install --save nprogress
引入
在路由配置文件中引入,写到路由加载前和加载后的两个钩子函数中
// 引入import NProgress from 'nprogress';import 'nprogress/nprogress.css';// 进度条配置项这样写NProgress.configure({ showSpinner: false});// 路由跳转前钩子函数中 - 执行进度条开始加载router.beforeEach((to, from, next) => { NProgress.start();});// 路由跳转后钩子函数中 - 执行进度条加载结束router.afterEach(() => { NProgress.done();});
如果是 cdn 引入的话,如下
<script class="lazy" data-src='nprogress.js'></script><link rel='stylesheet' href='nprogress.css'/>
设置进度条颜色
如果是一般的 vue 项目,把样式放到一个css文件中,在项目主文件main.js中引入,下面是 css 样式
#nprogress .bar { background: #00CC00 !important; //自定义颜色}
配置项
手动控制进度条递增,参数范围是0 - 1,不传参数的话,每次调用都会随机递增,但永远不会到达 100% ,除非调用NProgress.done();
// 调用之前如果进度条的状态 50%NProgress.inc(0.2);// 调用之后 70%
进度条加载完成
带参数true:即使没有调用NProgress.start(),也会显示并执行进度条从 0% - 100% 的状态,然后消失。
不带参数:如果没有调用NProgress.start(),那么此命令不会执行任何操作。
NProgress.done(true);
启动进度条时的最小百分比(默认为 0.08)
NProgress.configure({ minimum: 0.3});
可以使用模板更改标记。要保持进度条正常工作,要在其中保留一个role='bar'元素,参考默认模板。
// 默认模板NProgress.configure({ template: "<div class='....'>...</div>"});// 举例NProgress.configure({ template: "<div class='other-instance'><div role='bar'>更改标记</div></div>"})
使用 easing 和 speed 调整动画设置,ease可传递CSS3缓冲动画字符串(如ease、linear、ease-in、ease-out、ease-in-out、cubic-bezier),speed为动画速度(单位ms)。默认分别为 ease 200
NProgress.configure({ easing: 'ease', speed: 200});
关闭自动递增行为
NProgress.configure({ trickle: false});
调整递增的频率,单位为毫秒
NProgress.configure({ trickleSpeed: 200});
关闭微调器,默认为开启状态(上图中右上角的那个圆圈加载图标)
NProgress.configure({ showSpinner: false,});
更改父容器
NProgress.configure({ parent:'#container'});
为什么要使用Vue
Vue是一款友好的、多用途且高性能的JavaScript框架,使用vue可以创建可维护性和可测试性更强的代码库,Vue允许可以将一个网页分割成可复用的组件,每个组件都包含属于自己的HTML、CSS、JavaScript,以用来渲染网页中相应的地方,所以越来越多的前端开发者使用vue。
以上就是关于“怎么用vue实现页面加载时的进度条功能”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网行业资讯频道。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341