Тема 6. React.js Взаємодія з готовим кодом
Завдання 1
- Завдання 1
Перше завдання зв'язане з грою Хрестики-нулики(Tic-Tac-Toe). Нижче є найпростіший код гри, у вас буде декілька завдань стосовно змін та удосконалення.
1. Розділімо цей код на компоненти та файли для кожного компонента(Наприклад: Board.js, Game.js, Square.js,calculateWinner.js)
2. Добавте можливість вибору розміру поля ігроком(3х3, 4х4 і тд)
3. Добавити зміну порядку гравців(ходить О або Х), обмеження часу на кожний хід(добавити обмеження на хід 5 секунд, гра стане веселішою)
4. Стратегічні поради: Виводьте поради, які допоможуть гравцям краще розуміти ситуацію на полі та робити більш інформовані ходи.
Завдання 2
- Завдання 2
- Поради до виконання
Друге завдання зв'язане із сайтом про швидкісні машини.
Нижче будуть файли для уже готового сайту, вам необхідно створити новий додаток і запустити його через термінал/консоль.
Ви раніше використовували такі рішення як кошик товарів, гра на пам'ять, додаток вивчення мов, список справ, вікторина.
Подумайте як можна було б інтегрувати ці системи в цей сайт, і спробуйте це виконати.
Наприклад:
Кошик товарів - можна використати для вибраного сервісу замовлення додаткових послуг або товарів.
Вивчення мов - інтегрувати на сайт, для переключення між різними мовами.
Вікторина(QuizApp) - для швидкого опитування, або підбору контенту по вибору користувача.
Гра на пам'ять(Memory Game) - виконати сторінку призів зі знижками або бонусами, якщо користувачі зіграють в гру.
Виконання усіх завдань не обов'язкове. Поради для виконання:
Анімація: Додавання плавних переходів, ефектів затемнення або зміни розміру для створення привабливих та привабливих ефектів.
Слайдери і галереї: Дозвольте користувачам легко переглядати фотографії або інші візуальні матеріали за допомогою слайдерів або галерей.
Керування станом (State Management): Використовуйте локальний стан компонентів React для оновлення вмісту без перезавантаження сторінки. Наприклад, можна створити форму, яка оновлює вміст в реальному часі під час введення користувачем.
Обробка подій (Event Handling): Реагуйте на події користувача, такі як кліки, подвійні кліки, наведення курсору, інші дії мишею та клавіатурою. Це може бути використано для зміни вмісту, анімацій чи переходів.
Управління життєвим циклом (Lifecycle Management): Використовуйте методи життєвого циклу React, такі як
componentDidMount
,componentDidUpdate
,componentWillUnmount
, для виконання певних дій під час монтажу, оновлення чи розмонтажу компонентів.Умовний рендеринг (Conditional Rendering): Використовуйте умови для визначення, коли і які компоненти мають бути відображені. Наприклад, показувати або ховати певні елементи в залежності від стану даних.
Використання роутингу (Routing): Використовуйте бібліотеку
react-router
для створення багатосторінкового додатку з використанням шляхів URL.Форми з контрольованим компонентом (Controlled Components): Створюйте форми, в яких значення елементів форми контролюються компонентами React, що дозволяє легко відстежувати та обробляти зміни.
Передача пропсів (Props Passing): Використовуйте передачу пропсів між батьківськими та дочірніми компонентами для обміну даними та оновлення вмісту компонентів.
Анімація CSS з допомогою React : Використовуйте
React
для управління класамиCSS
, що дозволяє змінювати стилі та створювати анімації відповідно до дій користувача.
import React from 'react';
export default Header;
// Footer.js
import React from 'react';