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 相关文章推荐
用javascript连接access数据库的方法
Nov 17 Javascript
CSDN轮换广告图片轮换效果
Mar 27 Javascript
jQuery Div中加载其他页面的实现代码
Feb 27 Javascript
JQuery分别取得每行最后一列和最后一行的示例代码
Aug 18 Javascript
BootStrap智能表单demo示例详解
Jun 13 Javascript
深入理解(function(){... })();
Aug 16 Javascript
详解vue.js下引入百度地图jsApi的两种方法
Jul 27 Javascript
vue+vuex+json-seiver实现数据展示+分页功能
Apr 11 Javascript
vue项目前端知识点整理【收藏】
May 13 Javascript
js实现图片3D轮播效果
Sep 21 Javascript
解决ant-design-vue中menu菜单无法默认展开的问题
Oct 31 Javascript
arcgis.js控制地图地体的显示范围超出区域自动弹回(实现思路)
Jan 28 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 CLI实现简单的数据库实时监控调度
2009/07/01 PHP
将文件夹压缩成zip文件的php代码
2009/12/14 PHP
PHP实现显示照片exif信息的方法
2014/07/11 PHP
php防止sql注入简单分析
2015/03/18 PHP
thinkPHP框架乐观锁和悲观锁实例分析
2019/10/30 PHP
Yii实现微信公众号场景二维码的方法实例
2020/08/30 PHP
JavaScript 验证浏览器是否支持javascript的方法小结
2009/05/17 Javascript
JS 自定义带默认值的函数
2011/07/21 Javascript
Javascript 赋值机制详解
2014/11/23 Javascript
jQuery延迟加载图片插件Lazy Load使用指南
2015/03/25 Javascript
JavaScript中的getTimezoneOffset()方法使用详解
2015/06/10 Javascript
原生javascript+css3编写的3D魔方动画旋扭特效
2016/03/14 Javascript
一步步教大家编写酷炫的导航栏js+css实现
2016/03/14 Javascript
JQuery遍历元素的后代和同胞实现方法
2016/09/18 Javascript
Angular在模板驱动表单中自定义校验器的方法
2017/08/09 Javascript
利用JS hash制作单页Web应用的方法详解
2017/10/10 Javascript
Angular 4中如何显示内容的CSS样式示例代码
2017/11/06 Javascript
JavaScript常用数组操作方法,包含ES6方法
2020/05/10 Javascript
js实现旋转木马轮播图效果
2020/01/10 Javascript
在vue中封装的弹窗组件使用队列模式实现方法
2020/07/23 Javascript
Python strip lstrip rstrip使用方法
2008/09/06 Python
Python实现的使用telnet登陆聊天室实例
2015/06/17 Python
实例讲解Python编程中@property装饰器的用法
2016/06/20 Python
Python判断对象是否相等及eq函数的讲解
2019/02/25 Python
浅谈python中统计计数的几种方法和Counter详解
2019/11/07 Python
tensorflow 变长序列存储实例
2020/01/20 Python
实例讲解使用CSS实现多边框和透明边框的方法
2015/09/08 HTML / CSS
台湾网购生鲜第一品牌:i3Fresh爱上新鲜
2017/10/26 全球购物
党校党性分析材料
2014/12/19 职场文书
应届生求职自荐信范文
2015/03/04 职场文书
端午节寄语2015
2015/03/23 职场文书
2015年公路养护工作总结
2015/05/13 职场文书
信用卡催款律师函
2015/05/27 职场文书
心理健康教育培训研修感言
2015/11/18 职场文书
工作违纪的检讨书范文
2019/07/09 职场文书
vue ant design 封装弹窗表单的使用
2022/06/01 Vue.js