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 相关文章推荐
Jquery.TreeView结合ASP.Net和数据库生成菜单导航条
Aug 27 Javascript
基于JQuery制作可编辑的表格特效
Dec 23 Javascript
js实现仿QQ秀换装效果的方法
Mar 04 Javascript
js运动动画的八个知识点
Mar 12 Javascript
jQuery Easyui学习教程之实现datagrid在没有数据时显示相关提示内容
Jul 09 Javascript
浅谈JS中的bind方法与函数柯里化
Aug 10 Javascript
js HTML5 Canvas绘制转盘抽奖
Sep 13 Javascript
通过JS和PHP两种方法判断用户请求时使用的浏览器类型
Sep 01 Javascript
微信小程序 网络API 上传、下载详解
Nov 09 Javascript
vue2.0数据双向绑定与表单bootstrap+vue组件
Feb 27 Javascript
vue2项目使用sass的示例代码
Jun 28 Javascript
解决VueCil代理本地proxytable无效报错404的问题
Nov 07 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
提取HTML标签
2006/10/09 PHP
php中经典方法实现判断多维数组是否为空
2011/10/23 PHP
PHP隐形一句话后门,和ThinkPHP框架加密码程序(base64_decode)
2011/11/02 PHP
php实现的网络相册图片防盗链完美破解方法
2015/07/01 PHP
php 变量引用与变量销毁机制详细介绍
2016/12/05 PHP
如何用javascript去掉字符串里的所有空格
2007/02/08 Javascript
Javascript 判断客户端浏览器类型代码
2010/03/01 Javascript
jQuery UI的Dialog无法提交问题的解决方法
2011/01/11 Javascript
事件绑定之小测试  onclick &amp;&amp; addEventListener
2011/07/31 Javascript
js 使FORM表单的所有元素不可编辑的示例代码
2013/10/17 Javascript
用jquery实现动画跳到顶部和底部(这个比较简单)
2014/09/01 Javascript
JQuery基础语法小结
2015/02/27 Javascript
Jquery插件仿百度搜索关键字自动匹配功能
2016/05/11 Javascript
BootStrap.css 在手机端滑动时右侧出现空白的原因及解决办法
2016/06/07 Javascript
jQuery学习心得总结(必看篇)
2016/06/10 Javascript
jQuery EasyUI提交表单验证
2016/07/19 Javascript
详解jQuery uploadify文件上传插件的使用方法
2016/12/16 Javascript
webpack打包js的方法
2018/03/12 Javascript
Vue实现一个无限加载列表功能
2018/11/13 Javascript
如何实现vue的tree组件
2020/12/03 Vue.js
Python cx_freeze打包工具处理问题思路及解决办法
2016/02/13 Python
python监控文件或目录变化
2016/06/07 Python
Python用csv写入文件_消除空余行的方法
2018/07/06 Python
在PyCharm下打包*.py程序成.exe的方法
2018/11/29 Python
如何通过python实现人脸识别验证
2020/01/17 Python
python 实现 hive中类似 lateral view explode的功能示例
2020/05/18 Python
button在IE6/7下的黑边去除方案
2012/12/24 HTML / CSS
CSS3圆角和渐变2种常用功能详解
2016/01/06 HTML / CSS
HTML5通过navigator.mediaDevices.getUserMedia调用手机摄像头问题
2020/04/27 HTML / CSS
卫校中专生的自我评价
2014/01/15 职场文书
就业协议书怎么填
2014/09/15 职场文书
财务统计员岗位职责
2015/04/14 职场文书
追悼会答谢词范文
2015/09/29 职场文书
python编写五子棋游戏
2021/05/25 Python
教你怎么用Python操作MySql数据库
2021/05/31 Python
使用HttpSessionListener监听器实战
2022/03/17 Java/Android