当前位置:首页 > VUE

vue加载动画实现

2026-02-10 18:43:29VUE

vue加载动画实现方法

使用CSS动画

在Vue组件中直接添加CSS动画样式,通过v-if或v-show控制显示状态。定义关键帧动画并应用到元素上,适合简单场景。

<template>
  <div v-if="loading" class="spinner"></div>
</template>

<style>
.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>

使用第三方库

安装专用动画库如vue-loading-overlayvue-spinner,提供预置动画效果和更多配置选项。

vue加载动画实现

npm install vue-loading-overlay
<template>
  <loading :active="isLoading" :can-cancel="false"/>
</template>

<script>
import Loading from 'vue-loading-overlay'
export default {
  components: { Loading },
  data() {
    return { isLoading: true }
  }
}
</script>

过渡动画结合

利用Vue的<transition>组件实现加载过程中的渐变动画,适用于内容切换场景。

<transition name="fade">
  <div v-if="loading" class="loading-content">
    <p>Loading...</p>
  </div>
</transition>

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

骨架屏技术

在数据加载前显示内容占位图形,提升用户体验。可通过vue-content-loader库快速实现。

vue加载动画实现

npm install vue-content-loader
<template>
  <content-loader v-if="loading" :speed="2" primaryColor="#f3f3f3">
    <!-- 定义占位图形 -->
  </content-loader>
</template>

路由加载动画

在vue-router的全局前置守卫中添加全屏加载动画,适用于页面跳转场景。

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

按需加载控制

通过封装服务请求拦截器,自动管理加载状态显示与隐藏。

axios.interceptors.request.use(config => {
  store.commit('LOADING_START')
  return config
})

axios.interceptors.response.use(response => {
  store.commit('LOADING_END')
  return response
})

性能优化建议

  • 避免复杂动画影响首屏渲染速度
  • 使用will-change属性提升动画性能
  • 对移动端采用简化动画效果
  • 考虑SSR场景下的加载状态处理

标签: 加载动画
分享给朋友:

相关文章

vue实现gif动画

vue实现gif动画

Vue 中实现 GIF 动画的方法 在 Vue 中实现 GIF 动画可以通过多种方式完成,具体取决于需求和使用场景。以下是几种常见的方法: 直接使用 <img> 标签加载 GIF 最简单…

加载jquery

加载jquery

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

vue加载动画实现

vue加载动画实现

Vue 加载动画实现方法 使用 CSS 动画或过渡 在 Vue 组件中可以直接通过 CSS 实现加载动画效果。定义一个简单的旋转动画: .loading-spinner { width: 40p…

vue实现动画原理

vue实现动画原理

Vue 动画实现原理 Vue 的动画系统基于 CSS 过渡和动画,同时结合了 JavaScript 钩子函数。其核心是通过内置组件 <transition> 和 <transitio…

vue实现懒加载

vue实现懒加载

Vue 实现懒加载的方法 懒加载(Lazy Loading)是一种优化技术,用于延迟加载非关键资源,从而提升页面初始加载速度。Vue 中可以通过多种方式实现懒加载,以下是几种常见方法: 路由懒加载…

vue使用animate实现动画

vue使用animate实现动画

使用 Animate.css 在 Vue 中实现动画 在 Vue 项目中集成 Animate.css 可以为元素添加丰富的 CSS 动画效果。Animate.css 是一个预定义的 CSS 动画库,无…