发布于 2026-01-06 1 阅读
0

如何在 React 中创建完全可定制的内容加载器

如何在 React 中创建完全可定制的内容加载器

介绍

加载器几乎是所有应用程序的组成部分。每当您从 API 加载数据时,都需要显示加载消息或加载图标,以通知用户数据正在加载。

本文将展示一个可自定义的FacebookInstagram类似Grid内容加载器的控件。

先决条件

要完成本教程,您需要:

  • 已成功安装 Git。
  • Node.js 已在本地安装。

本教程已使用 Node v13.14.0、npm v6.14.4、react v16.13.1 和 react-content-loader v.5.1.0 进行验证。

步骤 1 — 安装并运行 React 应用

首先,请在终端中执行以下命令来克隆此 GitHub 仓库。

git clone https://github.com/myogeshchavan97/react-content-loader-demo.git
Enter fullscreen mode Exit fullscreen mode

初始代码位于该starter-code分支,完整源代码位于主分支,因此请starter-code在终端执行以下命令切换到该分支。

git checkout starter-code
Enter fullscreen mode Exit fullscreen mode

安装依赖项和react-content-loader版本为 5.1.0 的软件包,然后启动 React 应用

npm install
npm install react-content-loader@5.1.0
npm run start
Enter fullscreen mode Exit fullscreen mode

步骤 2 — 将内容加载器集成到应用程序中

现在,在文件夹components内创建一个新文件夹src,并在其中添加一个新文件,FacebookLoader.js内容如下。

import React from 'react';
import { Facebook } from 'react-content-loader';
const FacebookLoader = () => {
  return (
    <div>
      <h2>Facebook Loader</h2>
      <Facebook />
    </div>
  );
};
export default FacebookLoader;
Enter fullscreen mode Exit fullscreen mode

这里,您添加了软件包Facebook中的默认加载器组件react-content-loader

现在,打开src/App.js并使用上述FacebookLoader组件。

import React from 'react';
import FacebookLoader from './components/FacebookLoader';
import './App.css';
function App() {
  return (
    <div className="App">
      <FacebookLoader />
    </div>
  );
}
export default App;
Enter fullscreen mode Exit fullscreen mode

这将生成如下所示的加载器:

Facebook 加载器

步骤 3 — 自定义加载器

InstagramLoader.js现在,在文件夹内创建一个新文件components,内容如下

import React from 'react';
import { Instagram } from 'react-content-loader';
const InstagramLoader = () => {
  return (
    <div>
      <h2>Instagram Loader</h2>
      <Instagram width={500} height={500} backgroundColor="#cebaba" speed={3} />
    </div>
  );
};
export default InstagramLoader;
Enter fullscreen mode Exit fullscreen mode

在这里,您提供了额外的属性来自定义加载器。

  • width 和 height 属性用于指定加载器的宽度和高度,单位为像素 (px)。
  • backgroundColor 用于指定加载器的背景色
  • 速度,用于指定动画速度(以秒为单位)。

现在,打开src/App.js并使用上述InstagramLoader组件。

import React from 'react';
import FacebookLoader from './components/FacebookLoader';
import InstagramLoader from './components/InstagramLoader';
import './App.css';
function App() {
  return (
    <div className="App">
      <InstagramLoader />
      <FacebookLoader />
    </div>
  );
}
export default App;
Enter fullscreen mode Exit fullscreen mode

现在,您将看到如下所示的自定义 Instagram 加载器:

Instagram 加载器

步骤 4 — 使用自定义 SVG 代码自定义加载器

react-content-loader网站还提供了一个用户界面工具,您可以通过指定背景图片、加载方向以及其他属性来创建自定义加载动画。您可以点击此处查看。

该网站还提供了一个可供使用的不同加载器的图库。

例如,要使用网格布局加载器,请在文件夹GridLayoutLoader.js内创建一个新文件components,内容如下

现在,打开src/App.js并使用上述GridLayoutLoader组件。

import React from 'react';
import InstagramLoader from './components/InstagramLoader';
import GridLayoutLoader from './components/GridLayoutLoader';
import FacebookLoader from './components/FacebookLoader';
import './App.css';
function App() {
  return (
    <div className="App">
      <GridLayoutLoader />
      <InstagramLoader />
      <FacebookLoader />
    </div>
  );
}
export default App;
Enter fullscreen mode Exit fullscreen mode

网格布局

您可以在这里查看所有可用的装载机图库。

结论

正如你所看到的,内容加载器通过自定义动画效果,让应用程序看起来非常美观。

本文的完整源代码请查看GitHub 上的react-content-loader-demo仓库。您还可以查看此应用程序的在线演示。

别忘了订阅我的每周新闻简报,直接在您的收件箱中接收精彩的技巧、窍门和文章。点击此处订阅。

文章来源:https://dev.to/myogeshchavan97/how-to-create-a-filled-customizable-content-loader-in-react-21ap