当前位置:首页 > VUE

vue实现加载中

2026-02-19 00:04:28VUE

Vue 实现加载中效果的方法

在 Vue 中实现加载中效果可以通过多种方式完成,以下是一些常见的方法:

使用 v-if 或 v-show 控制加载状态

通过绑定一个布尔值来控制加载中的显示与隐藏。当数据加载时,将布尔值设为 true,加载完成后设为 false。

<template>
  <div>
    <div v-if="isLoading" class="loading-spinner">
      加载中...
    </div>
    <div v-else>
      内容已加载
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      isLoading: true
    }
  },
  mounted() {
    setTimeout(() => {
      this.isLoading = false
    }, 2000)
  }
}
</script>

使用第三方库如 Element UI 或 Vuetify

vue实现加载中

这些 UI 库提供了现成的加载组件,可以快速实现加载效果。

<template>
  <div>
    <el-button @click="showLoading">显示加载</el-button>
    <el-button @click="closeLoading">关闭加载</el-button>
    <el-loading v-model="isLoading"></el-loading>
  </div>
</template>

<script>
export default {
  data() {
    return {
      isLoading: false
    }
  },
  methods: {
    showLoading() {
      this.isLoading = true
    },
    closeLoading() {
      this.isLoading = false
    }
  }
}
</script>

自定义加载动画

vue实现加载中

可以通过 CSS 或 SVG 创建自定义的加载动画,增加用户体验。

<template>
  <div>
    <div v-if="isLoading" class="custom-loader">
      <div class="spinner"></div>
    </div>
  </div>
</template>

<style>
.custom-loader {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100px;
}
.spinner {
  width: 40px;
  height: 40px;
  border: 4px solid #f3f3f3;
  border-top: 4px solid #3498db;
  border-radius: 50%;
  animation: spin 1s linear infinite;
}
@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
</style>

使用异步组件和 Suspense

Vue 3 提供了 Suspense 组件,可以更好地处理异步加载状态。

<template>
  <Suspense>
    <template #default>
      <AsyncComponent />
    </template>
    <template #fallback>
      <div>加载中...</div>
    </template>
  </Suspense>
</template>

<script>
const AsyncComponent = defineAsyncComponent(() =>
  import('./AsyncComponent.vue')
)

export default {
  components: {
    AsyncComponent
  }
}
</script>

以上方法可以根据具体需求选择适合的方式来实现加载中效果。

标签: 加载中vue
分享给朋友:

相关文章

vue实现闪烁

vue实现闪烁

Vue实现元素闪烁效果 使用CSS动画实现 通过Vue绑定class结合CSS动画实现闪烁效果,代码简洁且性能较好。 <template> <div :class="{ 'bl…

vue nexttick 实现

vue nexttick 实现

Vue nextTick 实现原理 Vue 的 nextTick 是一个用于在下次 DOM 更新循环结束之后执行延迟回调的方法。它主要用于确保在 DOM 更新完成后执行某些操作。 核心实现机制 ne…

vue实现尺子

vue实现尺子

Vue 实现尺子组件 实现一个尺子组件可以通过 Canvas 或纯 CSS 完成。以下是两种常见实现方式: 使用 Canvas 绘制尺子 通过 Canvas 动态绘制刻度线和数字,适合需要高精度或动…

vue实现伸缩

vue实现伸缩

Vue实现伸缩功能的方法 使用CSS过渡和Vue的v-if或v-show 通过CSS的transition属性结合Vue的条件渲染指令(v-if或v-show)可以实现元素的伸缩效果。定义一个CSS类…

vue实现气泡

vue实现气泡

Vue 实现气泡效果的方法 在 Vue 中实现气泡效果可以通过 CSS 动画、第三方库或自定义组件完成。以下是几种常见实现方式: 使用纯 CSS 和 Vue 过渡 通过 Vue 的过渡系统结合 CS…

vue路由实现滑动

vue路由实现滑动

实现 Vue 路由滑动效果的方法 使用 Vue Router 结合 CSS 过渡动画 在 Vue Router 的路由视图组件 <router-view> 上添加过渡效果,结合 CSS 实…