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 相关文章推荐
我也种棵OO树JXTree[js+css+xml]
Apr 02 Javascript
基于jquery的让textarea自适应高度的插件
Aug 03 Javascript
jQuery与ExtJS之选择实例分析
Aug 19 Javascript
AngularJS基础教程之简单介绍
Sep 27 Javascript
如何解决easyui自定义标签 datagrid edit combobox 手动输入保存不上
Dec 26 Javascript
再次谈论React.js实现原生js拖拽效果引起的一系列问题
Apr 03 Javascript
jquery实现图片切换代码
Oct 13 Javascript
浅谈移动端之js touch事件 手势滑动事件
Nov 07 Javascript
AngularJS Controller作用域
Jan 09 Javascript
jquery实现自定义图片裁剪功能【推荐】
Mar 08 Javascript
简单实现js上传文件功能
Aug 21 Javascript
微信小程序自定义tabBar在uni-app的适配详解
Sep 30 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的ASP防火墙
2006/10/09 PHP
PHP数据库操作之基于Mysqli的数据库操作类库
2014/04/19 PHP
PHP is_array() 检测变量是否是数组的实现方法
2016/06/13 PHP
PHP仿qq空间或朋友圈发布动态、评论动态、回复评论、删除动态或评论的功能(上)
2017/05/26 PHP
解决jquery .ajax 在IE下卡死问题的解决方法
2009/10/26 Javascript
Knockoutjs的环境搭建教程
2012/11/26 Javascript
ajax上传时参数提交不更新等相关问题
2012/12/11 Javascript
JS实现div内部的文字或图片自动循环滚动代码
2013/04/19 Javascript
网页前端优化之滚动延时加载图片示例
2013/07/13 Javascript
将JavaScript的jQuery库中表单转化为JSON对象的方法
2015/11/17 Javascript
文件上传的几个示例分享【推荐】
2016/12/16 Javascript
BootStrapTable服务器分页实例解析
2016/12/20 Javascript
JS仿Base.js实现的继承示例
2017/04/07 Javascript
基于DOM节点删除之empty和remove的区别(详解)
2017/09/11 Javascript
js的函数的按值传递参数(实例讲解)
2017/11/16 Javascript
Node.js Koa2使用JWT进行鉴权的方法示例
2018/08/17 Javascript
微信小程序--获取用户地理位置名称(无须用户授权)的方法
2019/04/29 Javascript
node.js事件轮询机制原理知识点
2019/12/22 Javascript
vue-cli3中配置alias和打包加hash值操作
2020/09/04 Javascript
python实现闹钟定时播放音乐功能
2018/01/25 Python
Python爬虫PyQuery库基本用法入门教程
2018/08/04 Python
Window环境下Scrapy开发环境搭建
2018/11/18 Python
django主动抛出403异常的方法详解
2019/01/04 Python
Python3实现的旋转矩阵图像算法示例
2019/04/03 Python
Django工程的分层结构详解
2019/07/18 Python
Pytorch之保存读取模型实例
2019/12/30 Python
python字符串拼接+和join的区别详解
2020/12/03 Python
联想法国官方网站:Lenovo法国
2018/10/18 全球购物
彪马土耳其官网:PUMA土耳其
2019/07/14 全球购物
工程预算与管理应届生求职信
2013/10/06 职场文书
食堂采购员岗位职责
2014/03/17 职场文书
安全演讲稿大全
2014/05/09 职场文书
优秀工作者事迹材料
2014/12/26 职场文书
世界水日宣传活动总结
2015/02/09 职场文书
运动会三级跳加油稿
2015/07/21 职场文书
使用vue-element-admin框架从后端动态获取菜单功能的实现
2021/04/29 Vue.js