反応スピナーPlatoBlockchainデータインテリジェンスとReactで読み込みアニメーションを作成する方法。 垂直検索。 愛。

反応スピナーと反応してローディングアニメーションを作成する方法


概要

ロードに時間がかかる外部ソースからコンテンツをフェッチするReactアプリケーションを作成する場合、ユーザーを引き付け、ローダーに注意を向けることで、快適なユーザーエクスペリエンスを提供することをお勧めします。これにより、ユーザーは何が起こっているのかを理解するのに役立ちます。推測するためにそれらを残すよりも。

このガイドでは、アプリケーションをロードし、外部ソースからコンテンツを取得するときに、ローダーアニメーションを表示する方法を学習します。 react-spinners としょうかん。

そのために、見積もりを取得する小さなアプリケーションを作成します。見積もりの​​取得中にロード画面が表示されます。

反応読み込みアニメーションの例

スピナーを最初から作成する方法について詳しく知りたい場合は、 「Reactからロードアニメーションを最初から作成する方法」!

サンプルReactアプリの作成

まず、Reactマークアップを見てみましょう。 基本的にXNUMXつあります <div> の要素 <div> (簡単にするために)–XNUMXつは loader-container 2番目は main-content:

import React from 'react'; const App = () => { return ( <div className="container"> <div className="loader-container"> <div className="spinner"></div> </div> <div className="main-content"> <h1>Hello World!</h1> <p> This is a demo Project to show how to add animated loading with React. </p> <div className="buttons"> <button className="btn"> <a href="#">Read Article</a> </button> <button className="btn get-quote"> Generate Quote </button> </div> <div className="quote-section"> <blockquote className="quote"> If you do not express your own original ideas, if you do not listen to your own being, you will have betrayed yourself. </blockquote> - <span className="author">Rollo May</span> </div> </div> </div> );
}; export default App;

これまでのところ、作成したのは <div> 私たちのローダーのために。 それでは、コンテンツが読み込まれたときに追加してトリガーする方法を見てみましょう。

注: あなたがチェックアウトすることができます こちらのリポジトリにあります。 このガイドを読みながら、必要に応じてコードをクロスチェックしてください。

アプリケーションでのReactスピナーの使用

react-spinner Reactアプリケーションで使用できる多くのスピナーのコレクションです。 Reactスピナーを使用するには、最初に次のコマンドのいずれかを実行して、プロジェクトのディレクトリにライブラリをインストールする必要があります。

$ npm install --save react-spinners
// Or
$ yarn add react-spinners

これが完了すると、使用する特定のローダーをインポートできます(この場合、 ClipLoader)そしてサイズや色のようないくつかのスタイリングを設定します:

import React, { useState, useEffect } from 'react';
import ClipLoader from 'react-spinners/ClipLoader'; const App = () => { const [loadingInProgress, setLoading] = useState(false); <!-- ... --> return ( <div className="container"> {loadingInProgress ? ( <div className="loader-container"> <ClipLoader color={'#fff'} size={150} /> </div> ) : ( <div className="main-content"> <h1>Hello World!</h1> <p> This is a demo Project to show how to add animated loading with React. </p> <div className="buttons"> <button className="btn"> <a href="#">Read Article</a> </button> <button className="btn get-quote" onClick={getRandomQuote}> Generate Quote </button> </div> <div className="quote-section"> <blockquote className="quote">{quote.content}</blockquote>-{' '} <span className="author">{quote.author}</span> </div> </div> )} </div> );
}; export default App;

  react-spinner ライブラリには多くの便利な機能があります。たとえば、三項演算子を使用せずにロードを処理するために使用できます。

<ClipLoader color={'#fff'} loading={loadingInProgress} size={150} />

三項演算子を使用して、の値に基づいてコンテンツを表示する代わりに loadingInProgress 変数、単に使用しました loading={loadingInProgress} を代わりにお使いください。

制御に使用されるCSSを変更することもできます spinner-icon を使用して override 属性:

import { useState } from "react";
import { css } from "@emotion/react";
import ClipLoader from "react-spinners/ClipLoader"; const override = css` display: block; margin: 0 auto; border-color: red;
`; function App() { let [loadingInProgress, setLoading] = useState(true); return ( <div className="container"> <ClipLoader color={'#fff'} loading={loadingInProgress} css={override} size={150} /> // ... </div> );
} export default App;

注: 私たちはについてもっと読むことができます react-spinner セクションに ドキュメント、利用可能な罪人のリストも見ることができます。

まとめ

この短いガイドでは、どのように使用できるかを見てきました react-spinners Reactの要素にローディングスピナーを追加します。

タイムスタンプ:

より多くの スタックアバス