当前位置:首页 > 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>
);

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

react骨架屏实现

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 创建一个基础的 React 实现需要理解其核心概念:虚拟 DOM、组件、状态管理和渲染。以下是一个简化版的 React 实现。 创建虚拟 DOM 虚拟 DOM 是真实 D…

如何选购react

如何选购react

选购 React 相关产品或服务的建议 React 是一个用于构建用户界面的 JavaScript 库,广泛应用于前端开发。以下是选购 React 相关产品(如课程、书籍、工具、组件库等)的参考方法:…

react 如何运行

react 如何运行

运行 React 项目的步骤 安装 Node.js 确保系统已安装 Node.js(建议版本 16+),可通过官网下载并安装。安装后验证版本: node -v npm -v 创建 React 项目…

react如何迭代

react如何迭代

在 React 中迭代数组或对象 React 提供了多种方式来处理数组或对象的迭代,以下是常见的方法: 使用 map 方法迭代数组 map 是 JavaScript 数组的内置方法,常用于在 Rea…

react如何创建项目

react如何创建项目

使用 Create React App 创建项目 Create React App (CRA) 是官方推荐的 React 项目脚手架工具,适合快速初始化一个现代化的 React 项目。 安装 C…

react如何筛选数据

react如何筛选数据

筛选数据的方法 在React中筛选数据通常涉及对数组的操作,结合状态管理和渲染逻辑。以下是几种常见的实现方式: 使用数组的filter方法 通过JavaScript数组的filter方法筛选数据,并…