当前位置:首页 > VUE

vue怎么实现载入动画

2026-02-24 16:12:17VUE

实现载入动画的方法

使用CSS动画和Vue过渡 在Vue中可以通过<transition>组件结合CSS动画实现载入效果。定义一个简单的旋转动画,通过v-ifv-show控制显示状态。

<template>
  <div>
    <transition name="fade">
      <div v-if="isLoading" class="loader"></div>
    </transition>
  </div>
</template>

<style>
.loader {
  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); }
}

.fade-enter-active, .fade-leave-active {
  transition: opacity 0.5s;
}
.fade-enter, .fade-leave-to {
  opacity: 0;
}
</style>

使用第三方库 借助像vue-simple-spinnervue-loading-overlay这样的库可以快速实现专业动画效果。安装后直接调用组件即可。

npm install vue-simple-spinner
<template>
  <vue-simple-spinner size="medium"/>
</template>

<script>
import VueSimpleSpinner from 'vue-simple-spinner'
export default {
  components: { VueSimpleSpinner }
}
</script>

异步数据加载时显示 在数据请求期间自动显示加载动画,使用axios拦截器或async/await配合状态管理。

data() {
  return {
    isLoading: false,
    data: null
  }
},
methods: {
  async fetchData() {
    this.isLoading = true
    try {
      const response = await axios.get('/api/data')
      this.data = response.data
    } finally {
      this.isLoading = false
    }
  }
}

骨架屏技术 对于内容区域,可以使用骨架屏(Skeleton Screen)提升用户体验。通过占位元素模拟内容结构,数据加载完成后替换为真实内容。

<div v-if="loading" class="skeleton">
  <div class="skeleton-line"></div>
  <div class="skeleton-line"></div>
</div>
<div v-else>
  <!-- 实际内容 -->
</div>

<style>
.skeleton-line {
  height: 20px;
  background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
  background-size: 200% 100%;
  animation: shimmer 1.5s infinite;
}
</style>

路由切换动画 在Vue Router中为路由切换添加加载动画,通过全局前置守卫控制加载状态。

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

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

vue怎么实现载入动画

标签: 动画vue
分享给朋友:

相关文章

vue实现多级表头

vue实现多级表头

Vue 实现多级表头的方法 使用 el-table 组件 Element UI 的 el-table 组件支持多级表头的实现,通过嵌套 el-table-column 即可完成。 <el-t…

vue实现按钮组轮换

vue实现按钮组轮换

实现按钮组轮换的方法 在Vue中实现按钮组轮换效果可以通过动态绑定类和事件处理来完成。以下是一种常见的实现方式: 模板部分 <template> <div class="…

vue实现文章锚点定位

vue实现文章锚点定位

实现文章锚点定位的方法 在Vue中实现文章锚点定位可以通过多种方式完成,以下是几种常见的方法: 使用原生HTML锚点 通过HTML的id属性和<a>标签的href属性实现锚点跳转。在V…

vue树形实现

vue树形实现

Vue 树形组件实现方法 使用递归组件实现树形结构 递归组件是 Vue 中实现树形结构的常见方法。通过组件调用自身的方式,可以轻松构建多层嵌套的树形结构。 <template> &l…

vue实现标签

vue实现标签

Vue 实现标签的方法 在 Vue 中实现标签功能可以通过多种方式完成,以下是几种常见的方法: 使用动态组件 动态组件可以根据不同的条件渲染不同的标签内容。通过 :is 属性动态绑定组件名,实现标…

vue实现粘贴

vue实现粘贴

Vue 实现粘贴功能的方法 在 Vue 中实现粘贴功能通常涉及监听粘贴事件并处理剪贴板数据。以下是几种常见的实现方式: 监听原生粘贴事件 通过 @paste 指令或原生 addEventListe…