当前位置:首页 > 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,提供预置动画效果和更多配置选项。

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库快速实现。

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

按需加载控制

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

vue加载动画实现

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 最简单…

vue实现动画

vue实现动画

Vue 动画实现方法 Vue 提供了多种方式实现动画效果,主要通过内置组件和 CSS 过渡/动画实现。 使用 <transition> 组件 Vue 的 <transition&g…

react如何动画

react如何动画

React 动画实现方法 React 中实现动画可以通过多种方式,包括原生 CSS、第三方库或 React 内置的动画解决方案。以下是几种常见方法: 使用 CSS 动画和过渡 通过 CSS 的 tr…

vue实现同步加载

vue实现同步加载

Vue 实现同步加载的方法 在 Vue 中,通常推荐使用异步加载(如 async/await 或 Promise)来优化性能,但在某些场景下可能需要同步加载。以下是几种实现同步加载的方法: 使用 c…

vue中实现动画

vue中实现动画

vue中实现动画的方法 Vue提供了多种实现动画的方式,主要依赖于内置的<transition>和<transition-group>组件,以及结合CSS或JavaScript…

vue实现无限加载

vue实现无限加载

Vue 实现无限加载的方法 无限加载(Infinite Scroll)是一种常见的用户体验优化方式,适用于数据量较大的列表或瀑布流场景。以下是几种在 Vue 中实现无限加载的常用方法。 监听滚动事件…