当前位置:首页 > React

react骨架屏实现

2026-01-27 01:08:18React

实现 React 骨架屏的常用方法

使用第三方库(如 react-loading-skeleton 安装库:npm install react-loading-skeleton 引入并使用:

import Skeleton from 'react-loading-skeleton';
const MyComponent = () => (
  <div>
    <Skeleton height={20} width={200} />
    <Skeleton count={3} height={10} />
  </div>
);

该库提供高度可定制的骨架块,支持颜色、尺寸等参数调整。

手动实现 CSS 骨架屏 通过 CSS 动画和占位元素模拟加载状态:

.skeleton {
  background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
  background-size: 200% 100%;
  animation: shimmer 1.5s infinite;
}
@keyframes shimmer {
  from { background-position: 200% 0; }
  to { background-position: -200% 0; }
}

在组件中应用:

<div className="skeleton" style={{ width: '100%', height: '50px' }} />

结合 Suspense 和懒加载 React 18+ 推荐模式:

import { Suspense, lazy } from 'react';
const LazyComponent = lazy(() => import('./Component'));
const App = () => (
  <Suspense fallback={<SkeletonLoader />}>
    <LazyComponent />
  </Suspense>
);

动态内容替换策略 在数据加载完成后切换显示:

const [isLoading, setIsLoading] = useState(true);
useEffect(() => {
  fetchData().then(() => setIsLoading(false));
}, []);
return (
  <div>
    {isLoading ? <SkeletonLayout /> : <ActualContent />}
  </div>
);

最佳实践建议

  • 保持骨架屏结构与实际 UI 布局一致
  • 避免过度动画影响性能
  • 为不同屏幕尺寸设计响应式骨架
  • 使用 CSS 变量方便主题切换
  • 考虑骨架屏的 accessibility(添加 aria-live 属性)

react骨架屏实现

标签: 骨架react
分享给朋友:

相关文章

如何生成react代码

如何生成react代码

使用 Create React App 生成项目 安装 Node.js 后,通过命令行工具运行以下命令创建新项目: npx create-react-app my-app cd my-app npm…

react如何销毁

react如何销毁

React 组件销毁的机制 在 React 中,组件的销毁通常由 React 的生命周期管理。当组件从 DOM 中移除时,React 会自动触发销毁相关的生命周期方法。以下是关键点: 组件的销毁通…

react性能如何

react性能如何

React 性能特点 React 通过虚拟 DOM(Virtual DOM)和高效的 diff 算法优化性能。虚拟 DOM 减少了直接操作真实 DOM 的开销,仅在必要时更新变化的部分。React 的…

react 如何分页

react 如何分页

分页实现方法 在React中实现分页功能可以通过多种方式完成,具体取决于数据来源(如API或本地数据)和UI库的选择。以下是常见的实现方法: 使用本地数据分页 对于存储在组件状态或Context中…

react如何查

react如何查

React 查询方法 React 提供了多种查询 DOM 元素的方式,以下是几种常见的方法: 使用 ref 通过 useRef 钩子可以获取 DOM 节点的引用,适用于直接操作 DOM 的场景。…

react如何运行

react如何运行

运行React项目的步骤 安装Node.js 确保系统已安装Node.js(建议版本12以上),可从官网下载并安装。Node.js自带npm包管理器,用于后续依赖安装。 创建React项目 使用官…