Перейти до основного контенту

Прелоадер у React: керівництво зі створення

5 хв читання
1321 переглядів

Веб-додатки, створені з використанням React, зазвичай мають складну структуру і багато компонентів. Іноді завантаження таких додатків може займати певний час, і без певних заходів, що вживаються для відображення прелоадера, користувач може відчувати незадоволення від очікування. Тому важливо знати, як створити прелоадер React, який повідомить користувача про те, що застосунок все ще завантажується і скоро буде доступний.

Одним із найпростіших і найефективніших способів створення прелоадера React є використання компонентаSpinner. Цей компонент може бути настроюваним і адаптивним до будь-якого дизайну вашого додатка. Він працює на основі CSS і складається з анімованих елементів, які обертаються навколо центрального центру. Щоб створити його, вам знадобиться трохи знань про CSS і React.

Спочатку створіть новий файл і назвіть йогоSpinner.js. У цьому файлі ви можете визначити новий компонент React з іменемSpinner. Усередині компонента розмістіть HTML-код, який відображатиметься на сторінці під час завантаження програми. Використовуйте CSS-стилі, щоб зробити свій прелоадер красивим і ефектним.

Як створити прелоадер у React: докладний посібник

Крок 1. Створіть базовий компонент прелоадера

У React створення компонента починається з визначення класу, який успадковується від базового класу React.Component. Для прелоадера нам буде потрібно відображати анімований елемент.

import React from 'react';

// Визначаємо клас компонента

class Preloader extends React.Component

// Повертаємо DOM-елемент прелоадера

export default Preloader;

Крок 2. Додайте стилі для прелоадера

Щоб анімувати прелоадер, нам потрібно додати стилі за допомогою CSS. Ми створимо класи "preloader" і "spinner", щоб задати розміри елемента і відцентрувати анімацію.

border: 10px solid #f3f3f3f3;

border-top: 10px solid #3498db;

анімація: spinner 2s linear infinite;

Крок 3. Використовуйте прелоадер у застосунку

Тепер, коли у нас є компонент прелоадера і стилі для нього, ми можемо використовувати його в інших компонентах програми. Можливо, ви захочете відобразити прелоадер під час завантаження даних із сервера або під час переходу між сторінками.

// Імпортуємо React і компонент прелоадера

import React from 'react';

import Preloader from './Preloader';

// Визначаємо клас компонента

class App extends React.Component

// Життєвий цикл компонента

// Симуляція завантаження даних

export default App;

У цьому прикладі, під час завантаження сторінки, компонент App відображає прелоадер, який зникне через 2 секунди.

Тепер у вас є докладний посібник зі створення прелоадера в React. Ви можете налаштувати анімацію, змінити стилі та використовувати прелоадер у різних сценаріях вашого додатка.

Імпортування необхідних модулів

Перед тим, як почати створювати прелоадер, необхідно імпортувати необхідні модулі у файл із компонентом.

Для створення прелоадера в React, ми будемо використовувати такі модулі:

МодульОпис
ReactОсновний модуль React, необхідний для створення компонентів
ReactDomМодуль ReactDom, який відповідає за відтворення компонентів на сторінці
ReactLoadingМодуль ReactLoading, який дозволяє створювати анімований прелоадер
CssМодуль, який використовується для підключення стилів до компонентів

Для імпортування модулів вам необхідно додати такий код на початок файлу з компонентом:

import React from 'react';import ReactDOM from 'react-dom';import ReactLoading from 'react-loading';import './loader.css';

У цьому прикладі ми імпортуємо модулі React, ReactDOM і ReactLoading, а також стилі з файлу loader.css

Створення компонента прелоадера

Для створення компонента прелоадера в React, ми будемо використовувати HTML і CSS. Почнемо зі створення нового компонента за допомогою функціонального підходу.

Крок 1: Створіть новий файл із розширенням .jsx і назвіть його "Loader.jsx".

Крок 2: Усередині файлу Loader.jsx визначте функціональний компонент з іменем Loader. Поверніть HTML розмітку, яка відображатиме прелоадер. Вид прелоадера залежить від вашого дизайну, але ви можете використовувати, наприклад, коло, що крутиться. Ось приклад:

import React from 'react';const Loader = () => 
);>;export default Loader;

Крок 3: Створіть стилі для компонента прелоадера. Ви можете визначити їх в окремому файлі CSS або використовувати вбудований стиль (inline). Ось приклад стилів для прелоадера:

.loader .loader-circle @keyframes loader-rotate 100% >

У цьому прикладі ми використовуємо flexbox для центрування прелоадера по вертикалі та горизонталі. Круглий елемент з ефектом обертання створюється з використанням CSS анімації.

Крок 4: Щоб використовувати компонент Loader в іншому компоненті, вам потрібно імпортувати його і додати в потрібне місце. Наприклад:

import React from 'react';import Loader from './Loader';const App = () => 
);>;export default App;

Тепер, коли компонент Loader буде використаний в іншому компоненті, він відображатиметься на сторінці, поки контент не буде завантажено.

Визначення стилів для прелоадера

Щоб створити стильний прелоадер у React, необхідно визначити відповідні стилі. Для цього можна використовувати CSS або CSS-in-JS бібліотеки, такі як Styled Components або Emotion.

Для початку, визначимо стилі для контейнера прелоадера:

  • Встановимо ширину і висоту контейнера, щоб він займав усю доступну площу.
  • Установимо display: flex і justify-content: center, щоб прелоадер був відцентрований по горизонталі.
  • Додамо align-items: center, щоб прелоадер був відцентрований по вертикалі.
  • Установимо background-color і border-radius, щоб задати фоновий колір і закруглити кути контейнера.

Потім, визначимо стилі для анімації:

  • Встановимо розміри і колір кульок, які будуть обертатися всередині прелоадера.
  • Застосуємо анімацію, використовуючи keyframes або transition, щоб кульки оберталися.
  • Установимо animation-timing-function, щоб задати тип анімації, наприклад, лінійний або плавний.

Це лише деякі приклади стилів, які можуть бути застосовані до прелоадера. Ви можете використати свою уяву і стилізувати його на свій смак, щоб він відповідав дизайну вашого додатка.

Розміщення прелоадера в компоненті

Розробляючи прелоадер на React, важливо визначити, де і як найкраще розмістити його в компоненті. У більшості випадків прелоадер буде відображатися під час завантаження даних або виконання асинхронних операцій.

Нижче наведено кілька способів, як можна розмістити прелоадер у компоненті:

  • Розмістіть прелоадер перед початком рендерингу основного вмісту компонента. Це дасть змогу користувачеві відразу бачити, що дані завантажуються.
  • Помістіть прелоадер у блок, який відображається тільки під час завантаження даних. Потім, коли дані завантажені, приберіть прелоадер і відобразіть основний вміст компонента.
  • Розмістіть прелоадер усередині певного елемента, наприклад, усередині заголовка або блоку контенту. Це дасть змогу користувачеві звернути увагу на прогрес завантаження даних важливих частин сторінки.

Усі ці способи є хорошими варіантами розміщення прелоадера в компоненті залежно від конкретної ситуації та дизайнерських рішень. Важливо пам'ятати, що прелоадер має бути легко помітним і зрозумілим для користувача, щоб він міг зрозуміти, що відбувається завантаження даних.

Не забудьте також передбачити можливість скасування або переривання процесу завантаження даних і зручне відображення помилок, що виникають під час завантаження даних.

Створення станів для прелоадера

У React ми можемо створити стани для нашого прелоадера, щоб керувати його видимістю і відображенням залежно від різних подій або даних.

Для початку, ми повинні імпортувати useState хук із бібліотеки React:

import React, < useState >from 'react';

Потім ми можемо створити стан за допомогою useState:

const [isLoading, setIsLoading] = useState(true);

У наведеному вище прикладі, ми створюємо стан isLoading і встановлюємо його початкове значення true. Ми також створюємо функцію setIsLoading, яку ми можемо використовувати для зміни значення isLoading у майбутньому.

Тепер ми можемо використовувати цей стан для управління відображенням прелоадера. Наприклад, ми можемо відобразити прелоадер, коли значення isLoading дорівнює true, і приховати його, коли значення isLoading дорівнює false:

 : null>

У наведеному вище прикладі ми використовуємо тернарний оператор для перевірки значення isLoading. Якщо значення дорівнює true, ми рендеруємо компонент Spinner (наш прелоадер), інакше ми нічого не рендеруємо.

Ми також можемо використовувати цю логіку для відображення іншого контенту або повідомлення, коли прелоадер не відображається:

 : 

Данные загружены!

>

У наведеному вище прикладі, коли значення isLoading дорівнює true, ми рендеруємо компонент Spinner, інакше ми відображаємо текст "Дані завантажено!".

Використовуючи стани в React, ми можемо легко керувати відображенням прелоадера залежно від подій або даних, що змінюються. Це дає нам змогу створювати більш динамічну та інтерактивну користувацьку взаємодію.

Рендеринг прелоадера

Для цього створюємо новий файл з ім'ям Loader.js і додаємо в нього такий код:

import React from 'react';const Loader = () => ( );export default Loader;

У цьому коді ми створюємо функціональний компонент Loader. Він містить структуру HTML коду з прелоадером.

Усередині компонента ми використовуємо класи CSS для стилізації елементів прелоадера.

Потім, щоб відобразити прелоадер, ми можемо використовувати цей компонент в інших компонентах, коли відбувається асинхронна операція, як-от завантаження даних або виконання запиту на сервер.

Для цього включаємо компонент Loader у компонент, який виконує асинхронний запит:

import React from 'react';import Loader from './Loader';const App = () =>  setIsLoading(false))>, [])return (
: >
);>function fetchData() );>export default App;

У цьому прикладі ми використовуємо хук React useState і useEffect для встановлення стану isLoading і виконання асинхронної операції (функція fetchData замість цього виконує затримку setTimeout на 2 секунди для демонстраційних цілей). Компонент Loader відображається, поки стан isLoading дорівнює true, інакше відображається компонент OtherComponent, який містить основний вміст сторінки.

Тепер, коли асинхронна операція завершується, стан isLoading встановлюється на false, і компонент OtherComponent відображається замість прелоадера, що забезпечує більш плавний користувацький інтерфейс.

Оптимізація прелоадера

Прелоадери відіграють важливу роль у поліпшенні користувацького досвіду, але вони також можуть уповільнити завантаження сторінки. Тому важливо оптимізувати прелоадер, щоб він працював ефективно і не погіршував продуктивність.

Ось кілька порад щодо оптимізації прелоадера:

  1. Мінімізуйте розмір зображень: Використовуйте стислі зображення малого розміру. Це дасть змогу прискорити завантаження прелоадера.
  2. Використовуйте векторну графіку: Замість растрових зображень можна використовувати векторні, такі як SVG, щоб зменшити розмір файлу і зберегти чіткість на будь-якому пристрої.
  3. Використовуйте ліниве завантаження: Якщо прелоадер завантажується тільки для певних компонентів або сторінок, можна використовувати метод ледачого завантаження, щоб він з'являвся тільки тоді, коли це необхідно, прискорюючи весь процес завантаження.
  4. Об'єднуйте та мініфікуйте файли: Стиснення та об'єднання файлів CSS і JavaScript допомагає зменшити час завантаження сторінки та прелоадера загалом.
  5. Кешування: Встановіть правильні заголовки кешування, щоб браузери могли кешувати ваш прелоадер і використовувати його знову для повторних запитів.

Дотримуючись цих порад, ви зможете оптимізувати прелоадер і зробити його ефективним інструментом, що сприяє позитивному враженню користувачів і поліпшенню продуктивності вашого веб-сайту.

Інтеграція прелоадера в React-додаток

Для інтеграції прелоадера в React-додаток, ми можемо використовувати різні методи і бібліотеки залежно від наших потреб і переваг.

Один зі способів - використовувати вбудований механізм React для відображення і приховування компонентів на основі стану. Ми можемо створити компонент прелоадера, який буде відображатися під час завантаження даних або виконання асинхронних операцій, і ховатися, коли ці операції завершилися.

Ось приклад коду, що показує як створити такий компонент прелоадера в React:

import React, < useState, useEffect >from "react";// Компонент прелоадераconst Preloader = () =>  , 2000);return () => clearTimeout(timer);>, []);// Отображение прелоадера, если данные не загруженыreturn (loading && (
));>;export default Preloader;

У цьому прикладі ми використовували хук useState для встановлення стану завантаження і хук useEffect для імітації завантаження даних. Компонент прелоадера відображатиметься, поки стан завантаження дорівнює true.

Ми також можемо стилізувати прелоадер за допомогою CSS, додавши відповідний клас або стилі до елементів всередині компонента.

Щоб використовувати цей компонент прелоадера в інших частинах нашого React-додатку, ми можемо просто імпортувати його і вставити в потрібне місце, наприклад:

import React from "react";import Preloader from "./Preloader";const App = () => 

Мое React-приложение

Контент приложения.

);>;export default App;

У цьому прикладі ми імпортували компонент прелоадера з файлу Preloader.js і вставили його всередину компонента App, поряд з іншим контентом програми. Тепер прелоадер буде відображатися на сторінці під час завантаження даних або виконання інших асинхронних операцій, і автоматично ховатися, коли ці операції завершаться.

Таким чином, ми успішно інтегрували прелоадер у наш React-додаток за допомогою вбудованого механізму React для відображення і приховування компонентів на основі стану.