当前位置:首页 > 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实现预加载

vue实现预加载

Vue 实现预加载的方法 预加载可以显著提升用户体验,减少页面切换时的等待时间。以下是几种在 Vue 中实现预加载的常见方法: 使用 preload 或 prefetch 标签 在构建工具(如 W…

vue加载实现分页

vue加载实现分页

Vue 实现分页加载的方法 使用 Element UI 的分页组件 安装 Element UI 后,可以直接使用其分页组件。在模板中添加分页组件,并绑定相关事件和数据。 <template&g…

js实现图片加载

js实现图片加载

使用Image对象加载图片 通过JavaScript的Image对象可以动态加载图片,适用于需要预加载或动态插入图片的场景。 const img = new Image(); img.src…

vue动画实现方式

vue动画实现方式

Vue 动画实现方式 Vue 提供了多种方式来实现动画效果,主要通过内置的 <transition> 和 <transition-group> 组件以及结合 CSS 或 Jav…

vue动态加载实现

vue动态加载实现

Vue动态加载实现方法 动态加载在Vue中通常指按需加载组件或资源,以下是几种常见实现方式: 使用异步组件 通过defineAsyncComponent或动态import()语法实现组件按需加载:…

vue实现半场动画

vue实现半场动画

Vue 实现半场动画 在 Vue 中实现半场动画通常指的是动画执行到一半时停止或改变状态。可以通过 Vue 的过渡系统或第三方动画库(如 GSAP)实现。 使用 Vue 过渡 Vue 提供了…