返回首页

Loading 组件示例

演示两个加载指示器:ThreeDotLoading(三点弹跳)与 LoadingSpinner(三点脉冲)。

组件展示

两个组件均无 props、开箱即用,直接渲染即可。

ThreeDotLoading
LoadingSpinner

典型用法

数据加载时显示,完成后隐藏。点击按钮模拟一次 1.5s 的请求。

加载完成

Loading 组件使用说明

概述

项目提供两个加载指示器,均无 props、开箱即用,直接渲染即可:

组件文件实现
ThreeDotLoadingThreeDotLoading.tsx纯 Tailwind animate-bounce 三点弹跳
LoadingSpinnerLoadingSpinner.tsxmotion/react 三点脉冲 + 内联样式

两者职责单一,适用于「数据加载中」占位。


ThreeDotLoading —— 三点弹跳

纯 CSS(Tailwind)实现的三点弹跳动画,带 SSR 挂载保护(首帧返回空节点,挂载后再渲染,避免 hydration 闪烁),并附带无障碍标记。

import ThreeDotLoading from "@/common/components/ThreeDotLoading";

{loading ? <ThreeDotLoading /> : <Content />}
特性说明
依赖无(纯 Tailwind)
props无
SSR 保护挂载前返回空,挂载后渲染
无障碍role="status" + aria-label="loading"

LoadingSpinner —— 三点脉冲

基于 motion/react(Framer Motion)的三点缩放脉冲动画,样式通过组件内 <style> 注入,无外部 CSS 依赖。

import LoadingSpinner from "@/common/components/LoadingSpinner";

<LoadingSpinner />
特性说明
依赖motion/react
props无
动画scale 1 → 1.5 → 1 循环
样式组件内 <style> 注入

选用建议

  • 追求零依赖、体积小、与现有 Tailwind 体系一致 → ThreeDotLoading
  • 已引入 motion、想要更顺滑的脉冲动画 → LoadingSpinner