- Quick Start
- Installation
- Describing the UI
- Adding Interactivity
- Managing State
- Escape Hatches
GET STARTED
LEARN REACT
Додавання React до існуючого проекту
Якщо ви хочете додати трохи інтерактивності до вашого існуючого проекту, вам не потрібно переписувати його на React. Додайте React до існуючого стеку і рендеріте інтерактивні React-компоненти будь-де.
Для локальної розробки потрібно встановити Node.js. Хоча ви можете спробувати React онлайн або на простій HTML-сторінці, насправді більшість JavaScript-інструментів, які ви захочете використовувати для розробки, потребують Node.js.
Використання React для цілого підмаршруту вашого існуючого веб-сайту
Уявімо, що у вас є існуючий веб-застосунок за адресою example.com
, створений за допомогою іншої серверної технології (наприклад, Rails), і ви хочете реалізувати всі маршрути, починаючи з example.com/some-app/
, повністю за допомогою React.
Ось як ми рекомендуємо його налаштувати:
- Зберіть React-частину вашого застосунку за допомогою одного з React-фреймворків.
- Вкажіть
/some-app
в якості базового шляху у конфігурації вашого фреймворку (ось як: Next. js, Gatsby). - Налаштуйте ваш сервер або проксі так, щоб усі запити під
/some-app/
оброблялися вашим React-додатком.
Це гарантує, що React-частина вашого застосунку зможе користуватися найкращими практиками, закладеними у цих фреймворках.
Багато фреймворків на основі React є повностековими і дозволяють вашому React-застосунку використовувати переваги сервера. Однак ви можете використовувати той самий підхід, навіть якщо ви не можете або не хочете запускати JavaScript на сервері. У такому випадку, відправте HTML/CSS/JS експорт (next export
output для Next.js, за замовчуванням для Gatsby) за адресою /some-app/
замість.
Використання React для частини вашої існуючої сторінки
Уявімо, що у вас є існуюча сторінка, створена за допомогою іншої технології (серверної, як Rails, або клієнтської, як Backbone), і ви хочете рендерити інтерактивні React-компоненти десь на цій сторінці. Це поширений спосіб інтеграції React - фактично, саме так більшість користувачів React дивилися на Meta протягом багатьох років!
Ви можете зробити це у два кроки:
- Налаштування середовища JavaScript, яке дозволяє використовувати синтаксис JSX, розбивати код на модулі за допомогою синтаксису
import
/export
та використовувати пакети (наприклад, React) з реєстру пакетів npm. - Відображайте React-компоненти там, де ви хочете їх бачити на сторінці.
Точний підхід залежить від наявних налаштувань сторінки, тому давайте розглянемо деякі деталі.
Крок 1: Налаштування модульного середовища JavaScript
Модульне середовище JavaScript дозволяє вам писати компоненти React в окремих файлах, на відміну від написання всього коду в одному файлі. Це також дозволяє використовувати всі чудові пакети, опубліковані іншими розробниками в реєстрі npm, включаючи сам React! Як саме ви це зробите, залежить від ваших існуючих налаштувань:
Якщо вашу програму вже розбито на файли, які використовують оператори
імпорту
, спробуйте використати вже наявне налаштування. Перевірте, чи не призводить до синтаксичної помилки написання<div />
у вашому JS-коді. Якщо це призводить до синтаксичної помилки, можливо, вам доведеться трансформувати код JavaScript за допомогою Babel та увімкнути пресет Babel React для використання JSX.Якщо у вашій програмі не налаштовано компіляцію модулів JavaScript, налаштуйте її за допомогою Vite. Спільнота Vite підтримує багато інтеграцій з фреймворками інтерфейсу, зокрема Rails, Django та Laravel. Якщо вашого фреймворку немає у списку, скористайтеся цим посібником, щоб вручну інтегрувати збірки Vite з вашим бекендом.
Щоб перевірити, чи працює ваше налаштування, виконайте цю команду у теці проекту:
npm install react react-dom
Потім додайте ці рядки коду у верхній частині вашого основного файлу JavaScript (він може називатися index.js
або main.js
):
<!DOCTYPE html>
<html>
<head><title>My app</title></head>
<body>
<!-- Your existing page content (in this example, it gets replaced) -->
</body>
</html>
import { createRoot } from 'react-dom/client';
// Clear the existing HTML content
document.body.innerHTML = '<div id="app"></div>';
// Render your React component instead
const root = createRoot(document.getElementById('app'));
root.render(<h1>Hello, world</h1>);
Якщо весь вміст вашої сторінки було замінено на "Hello, world!", все запрацювало! Продовжуйте читати.
Вперше інтегрувати модульне середовище JavaScript в існуючий проект може здаватися страшним, але воно того варте! Якщо ви застрягли, спробуйте наші ресурси спільноти або Vite Chat.
Крок 2: Рендеринг React-компонентів будь-де на сторінці
На попередньому кроці ви додали цей код на початку вашого основного файлу:
import { createRoot } from 'react-dom/client';
// Clear the existing HTML content
document.body.innerHTML = '<div id="app"></div>';
// Render your React component instead
const root = createRoot(document.getElementById('app'));
root.render(<h1>Hello, world</h1>);
Звісно, ви не хочете очищати наявний HTML-вміст!
Видаліть цей код.
Натомість, ви, ймовірно, хочете рендерити React-компоненти в певних місцях вашого HTML. Відкрийте вашу HTML-сторінку (або шаблони сервера, які її генерують) і додайте унікальний атрибут id
до будь-якого тегу, наприклад:
<!-- ... somewhere in your html ... -->
<nav id="navigation"></nav>
<!-- ... more html ... -->
Це дозволяє вам знайти елемент HTML за допомогою document.getElementById
і передати його в createRoot
, щоб ви могли відрендерити власний React-компонент всередині:
<!DOCTYPE html>
<html>
<head><title>My app</title></head>
<body>
<p>This paragraph is a part of HTML.</p>
<nav id="navigation"></nav>
<p>This paragraph is also a part of HTML.</p>
</body>
</html>
import { createRoot } from 'react-dom/client';
function NavigationBar() {
// TODO: Actually implement a navigation bar
return <h1>Hello from React!</h1>;
}
const domNode = document.getElementById('navigation');
const root = createRoot(domNode);
root.render(<NavigationBar />);
Зверніть увагу, що оригінальний HTML-вміст з index.html
збережено, але всередині <nav id="navigation">
з'явився ваш власний NavigationBar
React-компонент з вашого HTML. Прочитайте документацію по використанню createRoot
, щоб дізнатися більше про рендеринг React-компонентів всередині існуючої HTML-сторінки.
Коли ви впроваджуєте React в існуючий проект, зазвичай починають з невеликих інтерактивних компонентів (наприклад, кнопок), а потім поступово продовжують "рухатися вгору", поки, врешті-решт, вся ваша сторінка не буде побудована з використанням React. Якщо ви коли-небудь досягнете цього етапу, ми рекомендуємо перейти на фреймворк React одразу після цього, щоб отримати максимальну віддачу від React.
Використання React Native в існуючому нативному мобільному застосунку
React Native також може бути інтегрований в існуючі нативні програми поступово. Якщо у вас є існуючий нативний застосунок для Android (Java або Kotlin) або iOS (Objective-C або Swift), дотримуйтесь цього посібника, щоб додати до нього екран React Native.