vue页面加载时的进度条功能(实例代码)

为了实现页面加载时的进度条功能,我们可以利用vue-router路由导航守卫的特性,监听路由跳转前后的事件,来实现页面加载状态的追踪和展示。下面是具体实现的步骤:

1.在项目中安装nprogress插件

npm install --save nprogress

2.在路由配置文件中引入nprogress

import Nprogress from 'nprogress'
import 'nprogress/nprogress.css'
  1. 在路由跳转前和跳转后分别添加nprogress的开始、结束事件
router.beforeEach((to, from, next) => {
  Nprogress.start()
  next()
})

router.afterEach(() => {
  Nprogress.done()
})
  1. 在页面模板中添加nprogress的进度条元素
<!-- App.vue -->
<template>
  <div id="app">
    <router-view />
    <Nprogress :is-show="show"/>
  </div>
</template>
  1. 在Nprogress.vue组件中实现进度条的展示和隐藏
<!-- Nprogress.vue -->
<template>
  <div class="nprogress-container" :class="{show: isShow}">
    <div class="nprogress-bar"></div>
  </div>
</template>

<script>
export default {
  props: {
    isShow: {
      type: Boolean,
      default: false
    }
  }
}
</script>

<style>
.nprogress-container {
  position: fixed;
  top: 0;
  left: 0;
  height: 2px;
  width: 100%;
  background-color: #e0e0e0;
  z-index: 9999;
  transition: opacity .2s linear;
  opacity: 0;
}
.nprogress-container.show {
  opacity: 1;
}
.nprogress-bar {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 0;
  background-color: #2196f3;
  transition: width .1s ease-out;
}
</style>

完成以上步骤,我们就成功实现了vue页面加载时的进度条功能。nprogress插件提供了多种主题和样式配置,大家可以上官网查看文档进行自定义设置。

这里再举两个示例说明一下:

示例一:引入进度条组件但不在所有路由跳转前后都显示进度条

通过watch监听$route变化,当路由跳转时动态控制进度条的显示和隐藏。

<!-- App.vue -->
<template>
  <div id="app">
    <Nprogress :is-show="show"/>
    <transition name="fade">
      <router-view />
    </transition>
  </div>
</template>

<script>
import Nprogress from '@/components/Nprogress.vue'

export default {
  components: { Nprogress },
  data() {
    return {
      show: false
    }
  },
  watch: {
    $route(to, from) {
      if (to.path === '/login' || to.path === '/register') {
        this.show = false
      } else {
        this.show = true
      }
    }
  }
}
</script>

示例二:自定义进度条组件样式

<!-- Nprogress.vue -->
<template>
  <div class="nprogress-container" :class="{show: isShow}">
    <div class="nprogress-bar" :style="{background: barColor, height: barHeight}">
      <div class="nprogress-peg"></div>
    </div>
  </div>
</template>

<script>
export default {
  props: {
    isShow: {
      type: Boolean,
      default: false
    },
    barColor: {
      type: String,
      default: '#29d',
    },
    barHeight: {
      type: String,
      default: '2px',
    },
  }
}
</script>

<style>
.nprogress-container {
  position: fixed;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  background-color: rgba(250, 250, 250, 0.8);
  z-index: 9999;
  display: flex;
  justify-content: center;
  align-items: center;
  transition: opacity .2s linear;
  opacity: 0;
}
.nprogress-container.show {
  opacity: 1;
}
.nprogress-bar {
  position: relative;
  width: 80%;
  height: 2px;
  .nprogress-peg {
    position: absolute;
    right: 0px;
    display: block;
    width: 16px;
    height: 100%;
    border: none;
    border-radius: 100px 0px 0px 100px / 4px 0px 0px 4px;
    background-color: #fff;
    box-shadow: 0 0 10px 1px #29d, 0 0 5px 0 #29d;
    transform: rotate(3deg) translate(0px, -4px);
  }
}
</style>

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vue页面加载时的进度条功能(实例代码) - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • 创建和运行Vue.js项目方法demo

    让我们来讲解如何创建和运行Vue.js项目。下面是完整攻略: 1. 安装 Node.js 安装Vue.js需要先安装Node.js。Node.js可以在Node.js官网上进行下载安装。选择相应平台的安装包进行下载,并按照提示进行安装。 安装完成后,可以在命令行中输入node -v和npm -v查看Node.js和npm的版本号,确认安装成功。 2. 创建V…

    Vue 2023年5月27日
    00
  • 22个Vue优化技巧(项目实用)

    下面是对“22个Vue优化技巧(项目实用)”的详细讲解。 一、懒加载路由 描述 使用懒加载路由可以大大提升项目的性能,当路由被访问时才会加载对应的组件,如果不使用懒加载路由,那么全局的所有组件会在项目启动时被加载,浪费大量资源。 示例 在路由文件中使用import语句,将组件打包成一个chunk,当路由被匹配时才会加载: const Foo = () =&g…

    Vue 2023年5月27日
    00
  • vue项目中使用eslint+prettier规范与检查代码的方法

    使用 Eslint 和 Prettier 来规范和检查 Vue 项目的代码是很有必要的,可以提高代码质量和可维护性,这里提供一个完整的攻略。 安装 Eslint 和 Prettier 首先,需要在项目中安装 Eslint 和 Prettier。可以使用 npm 或者 yarn 来安装。 npm install eslint prettier eslint-p…

    Vue 2023年5月27日
    00
  • 如何测量vue应用运行时的性能

    下面就为大家介绍如何测量Vue应用运行时的性能。 1.为什么测量Vue应用的性能 在开发Vue应用时,为了确保用户体验和性能,需要对应用进行性能优化。因此,我们需要知道如何测量Vue应用的性能,以便确定何时需要进行优化。 2.测量方式 2.1 使用Vue开发者工具 Vue开发者工具是一个非常强大的Chrome扩展程序,可以帮助我们更好地调试和优化Vue应用。…

    Vue 2023年5月27日
    00
  • Vuex中状态管理器的使用详解

    Vuex中状态管理器的使用详解 什么是Vuex Vuex是一个专门为Vue.js设计的状态管理库,用于集中管理应用程序的所有组件的状态,使得数据流更加可控易管理。 为什么使用Vuex 在大型项目中,随着Vue组件越来越多,各个组件之间的数据传递变得复杂而困难。此时,使用Vuex可以帮助我们更好地组织数据、管理状态,提高代码的可维护性。 Vuex基本构成 Vu…

    Vue 2023年5月28日
    00
  • 前端需知nodejs express中间件使用及定义详解

    前置知识 在学习本篇攻略之前,需要你对以下内容有一定的了解: Node.js基础概念 Node.js中间件原理及分类 Express基础概念和使用 什么是中间件 在Express中,一个请求从进入应用到返回响应的整个过程中,可以被看做是一系列的中间件函数依次执行的过程。其中的每一个中间件函数完全可以通过req,res, next这三个参数实现功能,同时以一个…

    Vue 2023年5月27日
    00
  • autojs的Node.js正确退出脚本示例

    AutoJS 是一款安卓设备上运行JavaScript脚本的工具,使用Node.js的方式可以让我们在脚本中使用更多功能,但由于特殊的 Android 平台和 AutoJS 运行环境,在退出脚本时需要注意一些问题。 问题描述 AutoJS 脚本在执行时,如果直接使用 exit() 函数退出,可能会导致脚本未能正确关闭,在下一次运行时会出现在上一次未正常退出后…

    Vue 2023年5月28日
    00
  • vue使用axios跨域请求数据问题详解

    下面我将详细讲解如何在Vue中使用Axios来跨域请求数据。 步骤一:安装并引入Axios 首先,我们需要使用npm来安装Axios依赖包。在终端中执行以下命令: npm install axios –save 安装完成后,在Vue组件中引入axios: import axios from ‘axios’ 步骤二:配置请求头 由于我们需要在客户端与服务器之…

    Vue 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部