首页 > 其他分享 >vue中使用nprogress优化导航条和请求数据的时候进行加载中显示

vue中使用nprogress优化导航条和请求数据的时候进行加载中显示

时间:2023-04-03 13:47:25浏览次数:29  
标签:loadingInstance loading 自定义 vue nprogress 导航条 response NProgress

以下内容仅供学习使用

  1. 先进行安装
    npm install --save nprogress
    或者
    yarn add nprogress
  2. 在你封装的request.js中使用
import NProgress from 'nprogress'
import 'nprogress/nprogress.css'

image

  1. 在axios.interceptors.request.use(config => {},请求开始的时候使用
    NProgress.start() //启动
    以下是自己当前例子使用到的代码
let loadingInstance = null
axios.interceptors.request.use(config => {
  NProgress.start() //启动
  // 显示loading状态
  loadingInstance = Loading.service({
    text: '数据加载中...',
    spinner: 'el-icon-loading',
    background: 'rgba(0, 0, 0, 0.7)', // 背景颜色
    duration: 1000, // 设置loading显示时间,单位为毫秒
    delay: 500 // 延迟500ms显示
  })
  //为请求头对象,添加token验证的Authorization字段
  config.headers.Authorization = window.sessionStorage.getItem("token")
  return config
}, error => {
  // 隐藏loading状态
  loadingInstance.close()
  return Promise.reject(error)
}),
  1. 在 axios.interceptors.response.use(response => {}中使用
    NProgress.done() //关闭
  axios.interceptors.response.use(response => {
    // 隐藏loading状态
    loadingInstance.close()
    NProgress.done()  //关闭
    return response
  }, error => {
    // 隐藏loading状态
    loadingInstance.close()
    return Promise.reject(error)
  })
  1. 它默认显示为蓝色进度条,如果你想自定义进度条颜色,可在全局css中或在app.vue下写入自己自定义的css样式;
<style>
// 自定义进度条颜色
 #nprogress .bar {
     background: #F811B2 !important; //自定义颜色
  }
</style>
  1. 效果图,刷新之后就会出现蓝条啦!

image

  1. 效果图,加载数据

image

标签:loadingInstance,loading,自定义,vue,nprogress,导航条,response,NProgress
From: https://www.cnblogs.com/Amyel/p/17282785.html

相关文章

  • Vue监听器~~~~
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width=......
  • Vue3中修改父组件传递到子组件中的值
    Vue3中修改父组件传递到子组件中的值1.大家都知道,vue是具有单向数据流的传递特性。当你在子组件中修改父组件传递过来的数据的时候,控制台就会报出错误,说不让你对父组件传递的值进行修改。2.那么,尤大大为了解决这个问题,在vue3的时候给我们提供了一个新的思路:v-model来实现父传子,并......
  • 一文搞定:前端如何选择Angular、React和Vue三大主流框架
    在前端开发领域,目前最流行的三个框架是Angular、React和Vue.js。这些框架非常高效,并且它们各自具有一系列的优缺点。在AI辅助编程工具CodeGeeX的后台中,也看到有大量的前端开发者使用这三个框架,并且Vue的使用率在CodeGeeX的后台中,持续走高。接下来我们针对Angular、React和Vue.js......
  • vue.js 监听器~~~
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width=devic......
  • java vue获取当月第一天和最后一天,当前周一和周日
    1,vue前端,通过moment获取当月第一天和最后一天,当前周一和周日letcurrDate=moment(newDate(),"YYYY-MM-DD");varfirstDay=moment(currDate.startOf("month").valueOf()).format('YYYY-MM-DD');//获取该月份第一天的时间戳varendDay=moment(cur......
  • vue: 路由报错后的处理方式(通常用在打包发布后的报错)
        用户在发包前进入了页面(也就是请求到了index.html),并且在index.html中可以得知将来要请求的异步组件的名字叫a.js,当服务器这时候发包,并且清空掉了a.js这个资源,改名叫a1.js。发包之后用户点击a.js对应的组件时,浏览器拿着先前在index.html得知的a.js这个......
  • vue单页应用前进刷新后退不刷新如何实现(利用keep-alive)
     场景如下下面的图片(图1):后退时,不刷新的页面。(需要保证左侧列表中的active状态)下面的图片(图2):点击“返回”,返回到上图(图1)所示的页面,此时要保证(图1)的页面不刷新那么如何实现?step1在不需要刷新的路由元信息meta中,增加keepAlive:true属性step2在App.vue模板中改写<router-view>,具体可......
  • layui和vue.js和jq一起使用调用vue方法及变量
    <divclass="layui-rowlayui-col-space15"id="app"></div>定义vueApp:letvueApprequire(['vue'],function(Vue){vueApp=newVue({el:"#app",data:{where......
  • vue3 - 引入自定义插件的组件的具体写法
    1.背景我的这一篇随笔详细讲解组件怎么制作与引入使用【vue3-在单独的项目制作自定义组件插件,支持vite【前提不要使用webpack专属语法】,并引入插件-心得-岑惜-博客园(cnblogs.com)】但在局部引入组件时,eslint红色警告   引用名言:“又不是不能用==”强迫症看着实......
  • vue快速入门
           ......