Vue项目页面跳转时浏览器窗口上方显示进度条功能


Posted in Javascript onMarch 26, 2020

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

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

具体实现,我们使用NProgress这个滚动条效果插件。

1.安装:

cnpm install --save nprogress

2.在main.js中引入:

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

3.在main.js中进行配置:

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

4.在main.js中对路由钩子进行设置:

//当路由进入前
 router.beforeEach((to, from , next) => {
  // 每次切换页面时,调用进度条
 NProgress.start();
 // 若加载时间长且不定,担心进度条走完都没有加载完,可以调用

NProgress.inc();//这会以随机数量递增,且永远达不到100%,也可以设指定增量
 next();
 });
//当路由进入后:关闭进度条
router.afterEach(() => { 
 // 在即将进入新的页面组件前,关闭掉进度条
 NProgress.done()
})

补充:vue页面跳转方法

vue2.0在使用的过程中, .vue文件之间的跳转,需要在router里面配置path,通过路径跳转,html文件跳转如下:

<router-link to="/path"><button>跳转</button></router-link>

但是有时的需求是页面不直接跳转,有确认弹框或者其他事件,此时就需要在js中设置跳转,方法如下:

this.$ router.push({path: ‘/…'}); path为跳转路径,此方法会产生历史记录
this.$ router.push({name:'…'}) name也可以作为路由跳转
this.$ router.push({path:‘home',query:{obj:'…'}}) query:参数,可通过this.$ route.query.obj获取
this.$ router.push({path:‘home',params:{obj:'…'}}) query:参数,可通过this.$route.params.obj获取
this.$router.replace() 此方法不会产生历史记录
this.$router.go(n) 向前或向后跳转n个页面

总结

到此这篇关于Vue项目页面跳转时浏览器窗口上方显示进度条功能的文章就介绍到这了,更多相关vue 页面跳转进度条内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
window.addEventListener来解决让一个js事件执行多个函数
Dec 26 Javascript
Javascript selection的兼容性写法介绍
Dec 20 Javascript
jQuery 获取兄弟元素的几种不错方法
May 23 Javascript
JQuery中serialize()用法实例分析
Feb 06 Javascript
js简单判断flash是否加载完成的方法
Jun 21 Javascript
AngularJS中的包含详细介绍及实现示例
Jul 28 Javascript
JS声明式函数与赋值式函数实例分析
Dec 13 Javascript
微信小程序 详解下拉加载与上拉刷新实现方法
Jan 13 Javascript
jQuery访问浏览器本地存储cookie、localStorage和sessionStorage的基本用法
Oct 20 jQuery
echarts鼠标覆盖高亮显示节点及关系名称详解
Mar 17 Javascript
vue实现表单录入小案例
Sep 27 Javascript
element跨分页操作选择详解
Jun 29 Javascript
JavaScript定时器使用方法详解
Mar 26 #Javascript
js实现时钟定时器
Mar 26 #Javascript
如何解决vue在ios微信&quot;复制链接&quot;功能问题
Mar 26 #Javascript
原生JS实现留言板
Mar 26 #Javascript
vue在线动态切换主题色方案
Mar 26 #Javascript
javascript实现简单搜索功能
Mar 26 #Javascript
jQuery实现html可联动的百分比进度条
Mar 26 #jQuery
You might like
PHP 字符串编码截取函数(兼容utf-8和gb2312)
2009/05/02 PHP
详解js异步文件加载器
2016/01/24 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
2017/12/21 PHP
第一个JavaScript入门基础 document.write输出
2010/02/22 Javascript
页面加载完成后再执行JS的jquery写法以及区别说明
2014/02/22 Javascript
JS清除选择内容的方法
2015/01/29 Javascript
JavaScript事件委托技术实例分析
2015/02/06 Javascript
javascript实现按回车键切换焦点
2015/02/09 Javascript
JavaScript严格模式详解
2015/11/18 Javascript
使用Promise解决多层异步调用的简单学习心得
2016/05/17 Javascript
jQuery基于toggle实现click触发DIV的显示与隐藏问题分析
2016/06/12 Javascript
window.open打开窗口被拦截的快速解决方法
2016/08/04 Javascript
js中class的点击事件没有效果的解决方法
2016/10/13 Javascript
Bootstrap树形菜单插件TreeView.js使用方法详解
2016/11/01 Javascript
使用Bootstrap4 + Vue2实现分页查询的示例代码
2017/12/21 Javascript
ES6 Promise对象的含义和基本用法分析
2019/06/14 Javascript
[58:37]Serenity vs Fnatic 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
Python 读写文件和file对象的方法(推荐)
2016/09/12 Python
Python跨文件全局变量的实现方法示例
2017/12/10 Python
python数字图像处理实现直方图与均衡化
2018/05/04 Python
解决python nohup linux 后台运行输出的问题
2018/05/11 Python
python 实现图片旋转 上下左右 180度旋转的示例
2019/01/24 Python
python实发邮件实例详解
2019/11/11 Python
Python xlrd模块导入过程及常用操作
2020/06/10 Python
python如何编写类似nmap的扫描工具
2020/11/06 Python
python 用opencv实现霍夫线变换
2020/11/27 Python
css3一个简易的 LED 数字时钟实现方法
2020/01/15 HTML / CSS
Microsoft Advertising美国:微软搜索广告
2019/05/01 全球购物
最新自我评价范文
2013/11/16 职场文书
本科生职业生涯规划书范文
2014/01/21 职场文书
银行竞聘演讲稿
2014/05/16 职场文书
领导干部遵守党的政治纪律情况思想汇报
2014/09/14 职场文书
2015年幼儿教师个人工作总结
2015/05/20 职场文书
2019年公司快递收发管理制度模板
2019/11/20 职场文书
python中24小时制转换为12小时制的方法
2021/06/18 Python
dubbo服务整合zipkin详解
2021/07/26 Java/Android