当前位置:首页 > 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 或方法控制弹窗显示,适合简单场景。

vue实现页面加载弹窗

<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()

全局加载状态管理

vue实现页面加载弹窗

通过 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 的导航守卫触发全局加载状态。

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

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

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

相关文章

css制作音乐盒页面

css制作音乐盒页面

音乐盒页面设计思路 音乐盒页面通常需要结合音频播放功能与视觉设计。以下是实现一个基础音乐盒页面的关键步骤。 HTML结构搭建 基础HTML需包含音频播放器控件和播放列表: <!DOC…

vue实现引导页面

vue实现引导页面

实现引导页面的方法 在Vue中实现引导页面通常需要结合用户交互和页面跳转逻辑,以下是几种常见的实现方式: 使用路由守卫控制访问权限 在router.js中配置全局前置守卫,检查用户是否首次访问:…

jquery加载页面

jquery加载页面

jQuery 加载页面内容的方法 使用 .load() 方法 通过 AJAX 请求加载远程数据并插入到指定元素中。适用于加载部分页面片段。 $("#targetElement").load("ext…

h5页面滑动效果实现

h5页面滑动效果实现

实现H5页面滑动效果的方法 H5页面滑动效果可以通过多种方式实现,包括原生JavaScript、CSS动画或第三方库。以下是几种常见的方法: 使用CSS Scroll Snap CSS Scroll…

vue实现页面滑入

vue实现页面滑入

使用 CSS 过渡实现滑入效果 在 Vue 中可以通过 CSS 过渡实现页面元素的滑入效果。定义一个过渡类,利用 Vue 的 <transition> 组件包裹目标元素,通过控制元素的 v…

vue 实现单页面

vue 实现单页面

Vue 实现单页面应用(SPA)的方法 Vue.js 是一个流行的前端框架,适合构建单页面应用(SPA)。以下是实现 SPA 的关键步骤和注意事项。 安装 Vue 和 Vue Router 确保项目…