nprogress页面加载进度条
前言
很多时候在访问网页的时候我们总是看到页面在加载中,可以却不知道要加载多久,无期限的等待总是让人烦躁不安,所以我们希望能知道网页加载的进度,这样我们就能做到心中有数是否继续等待页面加载。这个功能我们可以依靠nprogress来实现,它是轻量级的进度条组件,使用简便,可以很方便集成到应用中来。
安装nprogress
直接在项目中执行安装命令:npm install --save nprogress
nprogress方法
NProgress.start() // 进度条开始 NProgress.set() // 将进度设置到具体的百分比位置,取值范围是0到1.0 NProgress.inc() // 如果少量增加进度,进度将永远不会得到100% NProgress.done() // 进度条结束消失 NProgress.configure() // 进度条参数配置
全局引入nprogress
在main.js中引入nprogress插件和样式,
import NProgress from ‘nprogress' // nprogress插件 import ‘nprogress/nprogress.css' // nprogress样式
配置nprogress
在NProgress.configure({})中我们可以对nprogress进行适当的配置,showSpinner 为 false(禁用进度环)、trickle 为 false(关闭进度条步进)、trickleRate (每次步进增长多少)、trickleSpeed (步进间隔,单位毫秒ms)、ease(动画方向)、speed (动画速度,单位毫秒ms)、minimum (最小百分比)等等。
NProgress.configure({ showSpinner: false }) //我这里只关闭进度环
Vuerouter路由钩子
在添加nprogress
之前我们需要先了解Vuerouter
的beforeEach
与afterEach
钩子函数,这是在路由跳转的时候对路由进行一些权限判断或者其他操作时定义的处理函数,Vue.beforeEach
是在跳转之前执行,Vue.afterEach
是在跳转之后执行判断的。
Vue.beforeEach(function(to,form,next){})
函数有三个参数,Vue.afterEach(function(to,form))
函数有两个参数:
to
:即将进入的路由对象
from
:当前导航即将离开的路由对象
next
:调用该方法,进入下一个钩子函数,next(false):则中断当前的导航。
在路由中添加nprogress
在main.js中全局钩子函数,在路由跳转前用NProgress.start()标记下进度条开始,在路由跳转后用NProgress.done()标记下结束,这样在路由跳转的时候就可以在页面顶部看到一个progress bar进度条了
import Vue from 'vue' import App from './App.vue' import router from '@/router/index.js' import store from './store' import Element from 'element-ui' import 'element-ui/lib/theme-chalk/index.css' import '@/assets/icons/index.js' import NProgress from 'nprogress' import 'nprogress/nprogress.css' Vue.use(Element) Vue.config.productionTip = false NProgress.configure({ showSpinner: false }) router.beforeEach((to, from, next) => { NProgress.start() next() }) router.afterEach(() => { NProgress.done() }) new Vue({ router, store, render: h => h(App) }).$mount('#app')
在请求中添加nprogress
如果你希望每次发送请求的时候也出现进度条的话可以在axios封装中的路由拦截中添加nprogress
// 请求拦截器(请求发出前处理一些请求) axios.interceptors.request.use( NProgress.start() }) // 响应拦截器(处理响应数据) axios.interceptors.response.use( NProgress.done() )
为了让结构更滑清晰简洁些,我们重新整理下代码,即然nprogress主要是用在路由跳转上,这里我将nprogress归纳放入router中,切记实例化router之后调用Vuerouter的beforeEach与afterEach钩子函数生效。
import Vue from 'vue' import Router from 'vue-router' import routers from './routers' import NProgress from 'nprogress' import 'nprogress/nprogress.css' NProgress.configure({ showSpinner: false }) Vue.use(Router) const router = new Router({ mode: 'history', routes: routers }) export default router router.beforeEach((to, from, next) => { NProgress.start() next() }) router.afterEach(() => { NProgress.done() })
修改nprogress样式
在app.vue中添加如下样式即可修改nprogress样式,记得添加 !important来覆盖原有样式
#nprogress .bar { background: #66B1FF !important; // 自定义颜色 height: 20px !important; // 自定义高度 }
参考 https://www.toutiao.com/i6718992880599302659/?group_id=6718992880599302659
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
- 第五街的士高《印度激情版》3CD [WAV+CUE][2.4G]
- 三国志8重制版哪个武将智力高 三国志8重制版智力武将排行一览
- 三国志8重制版哪个武将好 三国志8重制版武将排行一览
- 三国志8重制版武将图像怎么保存 三国志8重制版武将图像设置方法
- 何方.1990-我不是那种人【林杰唱片】【WAV+CUE】
- 张惠妹.1999-妹力新世纪2CD【丰华】【WAV+CUE】
- 邓丽欣.2006-FANTASY【金牌大风】【WAV+CUE】
- 饭制《黑神话》蜘蛛四妹手办
- 《燕云十六声》回应跑路:年内公测版本完成95%
- 网友发现国内版《双城之战》第二季有删减:亲亲环节没了!
- 邓丽君2024-《漫步人生路》头版限量编号MQA-UHQCD[WAV+CUE]
- SergeProkofievplaysProkofiev[Dutton][FLAC+CUE]
- 永恒英文金曲精选4《TheBestOfEverlastingFavouritesVol.4》[WAV+CUE]
- 群星《国风超有戏 第9期》[320K/MP3][13.63MB]
- 群星《国风超有戏 第9期》[FLAC/分轨][72.56MB]