当前位置:首页 > 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中为路由切换添加加载动画,通过全局前置守卫控制加载状态。

vue怎么实现载入动画

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

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

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

相关文章

vue实现展开

vue实现展开

展开功能的实现方法 在Vue中实现展开功能可以通过多种方式完成,常见的有使用v-show、v-if指令,结合CSS过渡动画或第三方组件库。 使用v-show控制显示隐藏 通过v-show指令可以简单…

vue实现首页

vue实现首页

Vue 实现首页的基本步骤 安装 Vue.js 和相关依赖,可以通过 Vue CLI 或 Vite 快速初始化项目。Vue CLI 适合传统项目,Vite 更适合现代前端开发。 npm instal…

简单实现vue github

简单实现vue github

实现一个简单的 Vue 项目并上传到 GitHub 创建 Vue 项目 使用 Vue CLI 快速初始化一个 Vue 项目,确保已安装 Node.js 和 npm/yarn。运行以下命令创建项目:…

vue实现桌面widget

vue实现桌面widget

Vue 实现桌面 Widget 的方法 使用 Vue 实现桌面 Widget 通常需要结合 Electron 或 NW.js 等桌面应用框架,以及系统级 API 调用。以下是具体实现方法: 使用 E…

vue实现的setdata

vue实现的setdata

Vue 中实现类似小程序 setData 的方法 在小程序中,setData 方法用于异步更新页面数据并触发视图渲染。Vue 中可以通过以下几种方式实现类似功能: 直接使用 Vue 的响应式系统 V…

vue实现右滑

vue实现右滑

Vue 实现右滑功能 右滑功能通常用于移动端应用,实现手势操作。以下是几种常见的实现方法: 使用 Hammer.js 库 Hammer.js 是一个专门处理手势的库,可以方便地实现右滑功能。…