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 选择器 xpath 语法应用
May 13 Javascript
jquery-easyui关闭tab自动切换到前一个tab
Jul 29 Javascript
jquery实现滑动图片自己测试的例子
Nov 05 Javascript
js文本框输入点回车触发确定兼容IE、FF等
Nov 19 Javascript
javascript中AJAX用法实例分析
Jan 30 Javascript
js代码验证手机号码和电话号码是否合法
Jul 30 Javascript
js仿黑客帝国字母掉落效果代码分享
Nov 08 Javascript
浅析JavaScript作用域链、执行上下文与闭包
Feb 01 Javascript
JavaScript中创建对象的模式汇总
Apr 19 Javascript
深入理解JavaScript中的call、apply、bind方法的区别
May 30 Javascript
JS常用正则表达式总结【经典】
May 12 Javascript
浅谈Vue数据绑定的原理
Jan 08 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
thinkphp数据查询和遍历数组实例
2014/11/28 PHP
Codeigniter框架实现获取分页数据和总条数的方法
2014/12/05 PHP
PHP date函数常用时间处理方法
2015/05/11 PHP
thinkphp3.x连接mysql数据库的方法(具体操作步骤)
2016/05/19 PHP
thinkphp3.x中变量的获取和过滤方法详解
2016/05/20 PHP
YII框架http缓存操作示例
2019/04/29 PHP
两个JavaScript jsFiddle JSBin在线调试器
2010/03/14 Javascript
picChange 图片切换特效的函数代码
2010/05/06 Javascript
JavaScript var声明变量背后的原理示例解析
2013/10/12 Javascript
纯js分页代码(简洁实用)
2013/11/05 Javascript
jquery鼠标停止移动事件
2013/12/21 Javascript
JS 弹出层 定位至屏幕居中示例
2014/05/21 Javascript
jquery中的工具使用方法$.isFunction, $.isArray(), $.isWindow()
2015/08/09 Javascript
js改变透明度实现轮播图的算法
2020/08/24 Javascript
JavaScript 继承详解(五)
2016/10/11 Javascript
Bootstrap实现渐变顶部固定自适应导航栏
2020/08/27 Javascript
vue双向数据绑定原理探究(附demo)
2017/01/17 Javascript
Angularjs 事件指令详细整理
2017/07/27 Javascript
Vue上传组件vue Simple Uploader的用法示例
2017/08/25 Javascript
JS动态添加元素及绑定事件造成程序重复执行解决
2017/12/07 Javascript
vue自动化表单实例分析
2018/05/06 Javascript
一些手写JavaScript常用的函数汇总
2019/04/16 Javascript
python创建线程示例
2014/05/06 Python
Python合并字符串的3种方法
2015/05/21 Python
Python2.7下安装Scrapy框架步骤教程
2017/12/22 Python
python爬虫爬取网页表格数据
2018/03/07 Python
Python运维之获取系统CPU信息的实现方法
2018/06/11 Python
django_orm查询性能优化方法
2018/08/20 Python
Python Django的安装配置教程图文详解
2019/07/17 Python
HTML5中判断横屏竖屏的方法(移动端)
2016/08/04 HTML / CSS
兰蔻加拿大官方网站:Lancome加拿大
2016/08/05 全球购物
编程实现当输入某产品代码则打印出该产品记录的功能
2014/05/03 面试题
道德与公民自我评价
2015/03/09 职场文书
幼儿园奖惩制度范本
2015/08/05 职场文书
python关于集合的知识案例详解
2021/05/30 Python
golang实现浏览器导出excel文件功能
2022/03/25 Golang