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实现网站超链接和图片提示效果
Mar 21 Javascript
jquery自动将form表单封装成json的具体实现
Mar 17 Javascript
JavaScript利用append添加元素报错的解决方法
Jul 01 Javascript
JavaScript实现同一页面内两个表单互相传值的方法
Aug 12 Javascript
js实现简洁大方的二级下拉菜单效果代码
Sep 01 Javascript
angular4自定义组件详解
Sep 28 Javascript
Vue 按键修饰符处理事件的方法
May 04 Javascript
jQuery实现的简单对话框拖动功能示例
Jun 05 jQuery
vue系列之requireJs中引入vue-router的方法
Jul 18 Javascript
用jQuery将JavaScript对象转换为querystring查询字符串的方法
Nov 12 jQuery
vue实现计步器功能
Nov 01 Javascript
VUE中V-IF条件判断改变元素的样式操作
Aug 09 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实现memcache缓存示例讲解
2013/12/04 PHP
又一个PHP实现的冒泡排序算法分享
2014/08/21 PHP
php常用hash加密函数
2014/11/22 PHP
VPS中使用LNMP安装WordPress教程
2014/12/28 PHP
PHP的邮件群发系统phplist配置方法详细总结
2016/03/30 PHP
php 解决substr()截取中文字符乱码问题
2016/07/18 PHP
jQuery一步一步实现跨浏览器的可编辑表格,支持IE、Firefox、Safari、Chrome、Opera
2009/08/28 Javascript
ko knockoutjs动态属性绑定技巧应用
2012/11/14 Javascript
原生js操作checkbox用document.getElementById实现
2013/10/12 Javascript
jquery中 $.expr使用实例介绍
2014/06/09 Javascript
js怎么判断flash swf文件是否加载完毕
2014/08/14 Javascript
jQuery使用fadein方法实现渐出效果实例
2015/03/27 Javascript
jQuery实现带滚动导航效果的全屏滚动相册实例
2015/06/19 Javascript
基于jQuery实现的向下滑动二级菜单效果代码
2015/08/31 Javascript
jquery mobile移动端幻灯片滑动切换效果
2020/04/15 Javascript
vue2的todolist入门小项目的详细解析
2017/05/11 Javascript
一个简易的js图片轮播效果
2017/07/22 Javascript
基于vue.js路由参数的实例讲解——简单易懂
2017/09/07 Javascript
JS中图片压缩的方法小结
2017/11/14 Javascript
vue.js 实现输入框动态添加功能
2018/06/25 Javascript
vue-cli打包后本地运行dist文件中的index.html操作
2020/08/12 Javascript
Python的多维空数组赋值方法
2018/04/13 Python
python实现随机梯度下降法
2020/03/24 Python
python中多个装饰器的调用顺序详解
2019/07/16 Python
python删除文件夹下相同文件和无法打开的图片
2019/07/16 Python
python 追踪except信息方式
2020/04/25 Python
xml有哪些解析技术?区别是什么
2016/04/26 面试题
如何用Java判断一个文件或目录是否存在
2012/11/19 面试题
文员自我评价怎么写
2013/09/19 职场文书
销售经理岗位职责范本
2015/04/02 职场文书
实用求职信模板范文
2019/05/13 职场文书
80后创业总结的9条职场用人思想,记得收藏
2019/08/13 职场文书
创业计划书之韩国烧烤店
2019/09/19 职场文书
python中__slots__节约内存的具体做法
2021/07/04 Python
Java异常处理try catch的基本用法
2021/12/06 Java/Android