当前位置:首页 > VUE

vue实现页面加载弹窗

2026-02-25 03:05:34VUE

Vue 实现页面加载弹窗的方法

使用 Vue 组件和状态管理

创建一个独立的弹窗组件(如 LoadingPopup.vue),通过 v-ifv-show 控制显示。结合 Vuex 或 props 传递加载状态。

<template>
  <div class="loading-popup" v-if="isLoading">
    <div class="spinner"></div>
    <p>加载中...</p>
  </div>
</template>

<script>
export default {
  props: {
    isLoading: Boolean
  }
}
</script>

<style>
.loading-popup {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.5);
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 1000;
}
.spinner {
  /* 添加加载动画样式 */
}
</style>

在父组件中控制弹窗

通过父组件的 data 或方法控制弹窗显示,适合简单场景。

<template>
  <div>
    <button @click="fetchData">加载数据</button>
    <LoadingPopup :isLoading="isLoading" />
  </div>
</template>

<script>
import LoadingPopup from './LoadingPopup.vue'
export default {
  components: { LoadingPopup },
  data() {
    return {
      isLoading: false
    }
  },
  methods: {
    async fetchData() {
      this.isLoading = true
      try {
        await axios.get('/api/data')
      } finally {
        this.isLoading = false
      }
    }
  }
}
</script>

使用第三方库

例如 element-uiLoading 组件,直接调用封装好的方法。

import { Loading } from 'element-ui'

// 显示加载
let loadingInstance = Loading.service({ fullscreen: true })

// 关闭加载
loadingInstance.close()

全局加载状态管理

通过 Vuex 集中管理加载状态,适合复杂应用。

// store.js
export default new Vuex.Store({
  state: {
    isLoading: false
  },
  mutations: {
    setLoading(state, payload) {
      state.isLoading = payload
    }
  }
})
<!-- 组件中使用 -->
<template>
  <LoadingPopup :isLoading="$store.state.isLoading" />
</template>

<script>
export default {
  methods: {
    async loadData() {
      this.$store.commit('setLoading', true)
      await fetchData()
      this.$store.commit('setLoading', false)
    }
  }
}
</script>

路由切换时的加载弹窗

使用 Vue Router 的导航守卫触发全局加载状态。

vue实现页面加载弹窗

router.beforeEach((to, from, next) => {
  store.commit('setLoading', true)
  next()
})

router.afterEach(() => {
  store.commit('setLoading', false)
})

标签: 加载页面
分享给朋友:

相关文章

vue 实现页面跳转

vue 实现页面跳转

vue 实现页面跳转的方法 在 Vue 中实现页面跳转主要通过路由(Vue Router)完成,以下是几种常见的方式: 声明式导航(模板中使用 <router-link>) 在模板中直接…

h5页面实现vr

h5页面实现vr

实现H5页面VR效果的方法 在H5页面中实现VR(虚拟现实)效果,可以通过以下几种技术方案实现: 使用WebVR API WebVR是一个实验性的JavaScript API,提供了访问VR设备的功…

加载jquery

加载jquery

加载 jQuery 的方法 通过 CDN 加载 推荐使用官方或公共 CDN(内容分发网络)加载 jQuery,速度快且稳定。将以下代码添加到 HTML 文件的 <head> 或 <b…

h5页面实现录音

h5页面实现录音

实现H5页面录音的方法 使用Web Audio API Web Audio API提供音频处理能力,结合getUserMedia可实现录音。核心步骤包括请求麦克风权限、创建音频上下文和处理音频流。…

vue实现预加载

vue实现预加载

vue实现预加载的方法 在Vue中实现预加载可以通过多种方式优化用户体验,以下是几种常见方法: 使用Webpack的魔法注释 通过import()语法结合Webpack的/* webpackPref…

react如何页面跳转

react如何页面跳转

React 页面跳转方法 在 React 中实现页面跳转有多种方式,具体取决于项目使用的路由库(如 React Router)或状态管理工具。以下是常见的几种方法: 使用 React Router…