当前位置:首页 > React

骨架屏实现react

2026-01-27 00:32:23React

骨架屏实现方法(React)

使用第三方库react-loading-skeleton 安装依赖包:

npm install react-loading-skeleton

基本使用方式:

import Skeleton from 'react-loading-skeleton'
import 'react-loading-skeleton/dist/skeleton.css'

function MyComponent() {
  return (
    <div>
      <Skeleton height={100} width={200} />
      <Skeleton count={3} />
    </div>
  )
}

自定义CSS实现方案 创建Skeleton组件:

const SkeletonElement = ({ type }) => {
  const classes = `skeleton ${type}`
  return <div className={classes}></div>
}

添加CSS样式:

.skeleton {
  background: #ddd;
  overflow: hidden;
  margin: 10px 0;
  border-radius: 4px;
}
.skeleton.text {
  width: 100%;
  height: 12px;
}
.skeleton.avatar {
  width: 50px;
  height: 50px;
  border-radius: 50%;
}

结合动画效果 添加渐变动画:

@keyframes shimmer {
  0% { background-position: -468px 0 }
  100% { background-position: 468px 0 }
}

.shimmer {
  background: linear-gradient(to right, #eee 8%, #ddd 18%, #eee 33%);
  background-size: 800px 104px;
  animation: shimmer 1.5s infinite linear;
}

条件渲染控制 根据数据状态切换:

function UserProfile({ user }) {
  return (
    <div>
      {user ? (
        <div>
          <img src={user.avatar} alt="avatar" />
          <h2>{user.name}</h2>
        </div>
      ) : (
        <div className="skeleton-wrapper">
          <SkeletonElement type="avatar" />
          <SkeletonElement type="text" />
        </div>
      )}
    </div>
  )
}

复杂布局处理 多区块骨架屏示例:

const ArticleSkeleton = () => (
  <div className="skeleton-article">
    <SkeletonElement type="title" />
    <SkeletonElement type="thumbnail" />
    <div className="skeleton-content">
      <SkeletonElement type="text" />
      <SkeletonElement type="text" />
    </div>
  </div>
)

性能优化建议

  • 避免过多DOM节点
  • 使用CSS硬件加速
  • 控制动画频率
  • 按需加载骨架组件

以上方法可根据实际项目需求组合使用,react-loading-skeleton适合快速实现,自定义方案则提供更高灵活性。

骨架屏实现react

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

相关文章

react native 如何

react native 如何

React Native 开发基础 React Native 是一个用于构建跨平台移动应用的框架,允许开发者使用 JavaScript 和 React 编写代码,同时生成原生 iOS 和 Androi…

如何优化react

如何优化react

优化 React 性能的方法 使用 React.memo 或 PureComponent 对于函数组件,使用 React.memo 进行记忆化,避免不必要的重新渲染。类组件可以使用 PureCompo…

如何记忆react

如何记忆react

理解核心概念 React的核心概念包括组件、状态(state)、属性(props)、生命周期方法(类组件)和钩子(函数组件)。掌握这些基础概念是记忆React的关键。组件是React应用的构建块,分为…

react架构如何

react架构如何

React 架构核心概念 React 的架构围绕组件化、虚拟 DOM 和单向数据流设计。组件是构建用户界面的独立模块,分为函数组件和类组件。虚拟 DOM 通过高效的 Diff 算法减少直接操作真实 D…

react如何遍历

react如何遍历

遍历数组或对象的方法 在React中,遍历数组或对象通常用于渲染列表或动态生成内容。以下是几种常见的遍历方法: 使用map遍历数组map是遍历数组并返回新数组的高阶函数,适合渲染列表。…

react 如何调试

react 如何调试

调试 React 应用的方法 使用 React Developer Tools 安装 Chrome 或 Firefox 的 React Developer Tools 扩展,可以检查组件树、状态和 p…