Додаємо React до сайту
Використовуйте лише ту частину React, яка вам потрібна.
З самого початку React був спроектований для поступового вбудовування і ви можете використати ту частину React, яка вам потрібна. Можливо, ви тільки хочете “оживити” елементи існуючого сайту. React-компоненти є чудовим способом зробити це.
Більшість сайтів в інтернеті не є і не мають бути односторінковими додатками. Спробувати React в невеликих місцях вашого сайту можна за допомогою декількох рядків коду і без інструментів збірки. За бажанням, ви зможете потім поступово поширювати React на сайті або залишити в декількох динамічних віджетах.
- Додаємо React за одну хвилину
- Необов’язково: Спробуйте React з JSX (без необхідності в бандлерах!)
Додаємо React за одну хвилину
У цьому розділі ми покажемо, як додати React-компонент до існуючої HTML сторінки. Ви можете практикуватися на своєму сайті або створити для даних цілей пустий HTML файл.
Вам не потрібно встановлювати складні інструменти або що-небудь інше — для того, щоб пройти даний розділ, вам потрібен доступ в Інтернет і хвилинка вільного часу.
Необов’язково: Завантажити готовий приклад (2Кб в архіві)
Крок 1: Додайте DOM-контейнер до HTML структури
По-перше, відкрийте HTML сторінку, яку ви хочете відредагувати. Додайте пустий <div> тег, щоб показати де ви хочете відобразити що-небудь з React. Для прикладу:
<!-- ... існуючий HTML-код ... -->
<div id="like_button_container"></div>
<!-- ... існуючий HTML-код ... -->Ми дали цьому <div>-у id HTML-атрибут, який є унікальним. Це дозволить нам знайти його пізніше за допомогою JavaScript-коду та відобразити React-компонент всередині нього.
Порада
Ви можете вставити “контейнер”
<div>будь-де всередині тегу<body>. Ви можете створювати стільки незалежних DOM-контейнерів на одній сторінці, скільки вам потрібно. Вони зазвичай пусті — React замінить будь-який існуючий вміст всередині DOM контейнерів.
Крок 2: Додайте теги скриптів
Далі, додайте три теги <script> до HTML-сторінки перед закриваючим тегом </body>:
<!-- ... інший HTML-код ... -->
<!-- Завантажимо React. -->
<!-- Примітка: перед розгортанням на продакшн, замініть "development.js" на "production.min.js". -->
<script src="https://unpkg.com/react@16/umd/react.development.js" crossorigin></script> <script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js" crossorigin></script>
<!-- Завантажимо наш React-компонент. -->
<script src="like_button.js"></script>
</body>Перші два теги завантажують React. Третій завантажує код вашого компонента.
Крок 3: Створіть React-компонент
Створіть файл з назвою like_button.js в директорії з вашою HTML-сторінкою.
Відкрийте цей початковий код і вставте його у файл, який ви створили раніше.
Порада
Цей код описує компонент React під назвою
LikeButton. Не хвилюйтесь, якщо ви не розумієте його — ми охопимо розробку React-компонентів пізніше в нашому практичному підручнику і довідці про основні концепти React. Зараз же давайте відобразимо його на екрані!
Після початкового коду додайте два рядки коду в кінці like_button.js:
// ... початковий код, який ви скопіювали...
const domContainer = document.querySelector('#like_button_container');ReactDOM.render(e(LikeButton), domContainer);Ці два рядки коду шукають <div>, який ми додали до нашого HTML-файлу в першому кроці і потім відображає React-компонент кнопки “Мені подобається” всередині нього.
Готово!
Ось і все! Ви щойно додали ваш перший React-компонент до вашого сайту.
Ознайомтесь з наступними розділами, щоб дізнатися про інші способи додавання React на ваш сайт.
Подивитися фінальний код прикладу
Завантажити код прикладу (2Кб в архіві)
Порада: Повторно використовуйте компоненти
Зазвичай ви, мабуть, хотіли би відобразити React-компонент у кількох місцях на HTML-сторінці. Цей приклад показує кнопку “Мені подобається” три рази із різними даними:
Завантажити код прикладу (2Кб в архіві)
Примітка
Цей принцип найбільш доречний для сторінок сайту, які містять написані на React ізольовані частини коду. Всередині чистого React-коду простіше користуватися композицією компонентів.
Порада: Виконуйте стиснення JavaScript-коду перед розгортанням
Перед публікацією вашого сайту на продакшн не забудьте про те, що нестиснений JavaScript-код може значно сповільнити швидкість завантаження сторінки для ваших користувачів.
Якщо ви вже стискаєте скрипти вашого додатку, то ваш сайт буде готовим для публікації на продакшн, якщо ви впевнитесь в тому, що опублікована HTML-сторінка завантажує версії React, які закінчуються на production.min.js:
<script src="https://unpkg.com/react@16/umd/react.production.min.js" crossorigin></script>
<script src="https://unpkg.com/react-dom@16/umd/react-dom.production.min.js" crossorigin></script>Якщо ви ще не налаштували стискання для ваших скриптів, то цей варіант може вам допомогти із цим.
Необов’язково: Спробуйте React з JSX
В попередніх прикладах ми використовували тільки звичайні можливості сучасних браузерів. Тому ми використали JavaScript функцію, мета якої описати React, що відобразити на екран:
const e = React.createElement;
// Відобразити <button> з текстом "Мені подобається"
return e(
'button',
{ onClick: () => this.setState({ liked: true }) },
'Мені подобається'
);Однак React також пропонує можливість використовувати спеціальний синтаксис під назвою JSX:
// Відобразити <button> з текстом "Мені подобається"
return (
<button onClick={() => this.setState({ liked: true })}>
Мені подобається
</button>
);Ці два приклади виконують одну і ту ж річ. Незважаючи на те, що JSX є цілком необов’язковим, багато людей вважають його зручним для розробки інтерфейсів користувача — як із React, так і з іншими бібліотеками.
Ви можете спробувати JSX у цьому онлайн-конвертері.
Швидкий старт з JSX
Найшвидший спосіб спробувати JSX в вашому проекті — це додати тег <script> до вашої сторінки:
<script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>Тепер ви можете використовувати JSX в будь-якому <script>-тегу за допомогою додавання атрибуту type="text/babel". Ось приклад HTML-файлу з JSX, який ви можете завантажити і поекспериментувати з ним.
Такий спосіб прекрасний для навчання і створення простих демо. Однак це робить ваш сайт повільним і непридатним для публікації в продакшн. Тому для розгортання React-компоненту з JSX краще зробити по-іншому. Коли ви готові до кроку вперед, видаліть тег <script> і атрибут type="text/babel", який ми додали раніше. Замість цього, в наступному розділі ви встановите JSX-препроцесор для того, щоб трансформувати код всередині тегів <script> автоматично.
Додаємо JSX в проект
JSX не потребує від проекту складних інструментів як бандлер або сервер для розробки. По суті, додавання JSX нагадує додавання CSS-препроцесора. Головною вимогою є наявність встановленого Node.js на вашому комп’ютері.
Перейдіть до директорії вашого проекту в терміналі і вставте наступні дві команди:
- Крок 1: Запустіть
npm init -y(якщо результатом виконання цієї команди є будь-які помилки, спробуйте дане рішення вашої проблеми) - Крок 2: Запустіть
npm install babel-cli@6 babel-preset-react-app@3
Порада
Ми використовуємо в даному прикладі менеджер пакунків npm лише для того, щоб встановити JSX препроцесор. React і код додатку може залишатися в тегах
<script>без змін.
Вітаємо! Ви щойно додали у ваш проект підтримку JSX, яка готова до публікації в продакшн.
Запускаємо препроцесор JSX
Створіть директорію під назвою src і запустіть наступну команду в терміналі:
npx babel --watch src --out-dir . --presets react-app/prodПримітка
npxне є помилкою — це інструмент запуску пакетів, який з’явився в npm версії 5.2+.Якщо ви отримали помилку, схожу на “You have mistakenly installed the
babelpackage”, це значить що вам необхідно перейти до попереднього кроку і виконати команду ще раз.
Не чекайте на завершення цієї команди — ця команда запускає автоматичне спостереження і реагування на будь-які зміни в коді JSX.
Тепер спробуйте створити файл під назвою like_button.js в директорії src/ з цим стартовим кодом JSX. Препроцесор автоматично трансформує новий код в JavaScript-код, який “розуміють” браузери. Коли ви внесете зміни до файлу з JSX, препроцесор перезапустить процесс трансформування автоматично.
В якості бонуса, це також вам дасть використовувати сучасні синтаксичні новинки JavaScript, як класи, без хвилювань про несумісність з старими браузерами. Інструмент, який ми щойно додали, називається Babel, докладніше познайомитися з ним ви можете завдяки його документації.
Якщо вам стає більш комфортно з інструментами збірки і хочете аби вони робили більше для вас, наступний розділ описує деякі із найпопулярніших способів. Якщо ні — цих тегів script цілком достатньо!