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

性能优化建议

骨架屏实现react

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

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

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

相关文章

react如何运行

react如何运行

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

react如何遍历

react如何遍历

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

react如何分

react如何分

React 分页实现方法 在 React 中实现分页功能可以通过多种方式完成,以下是几种常见的方法: 使用状态管理分页数据 在组件内部维护当前页码和每页数据量的状态,通过计算切片数据实现分页。…

react如何启动

react如何启动

启动 React 项目的步骤 确保已安装 Node.js React 需要 Node.js 环境运行,建议安装最新稳定版(LTS)。可通过以下命令检查是否已安装: node -v npm -v…

react如何代码优化

react如何代码优化

减少不必要的重新渲染 使用 React.memo 包装函数组件以避免在 props 未变化时重新渲染。对于类组件,可以通过 shouldComponentUpdate 或继承 PureComponen…

react如何获取光标

react如何获取光标

获取光标位置的方法 在React中获取光标位置通常涉及处理输入框或文本区域的onChange或onSelect事件。以下是几种常见的方法: 通过selectionStart和selectionEnd…