React + Redux. Профессиональная Разработка
Автор курса — Юрий Бура, курс доступен на Udemi, его хвалят на dou и рутрекере.
Итак, что я узнала. React это библиотека, а не фреймворк.
Если фреймворк, вроде Angular имеет под капотом всё необходимое для тестирования, настройки сервера и т.д, то реакт выполняет только одну задачу — создание пользовательских интерфейсов (UI), а для других задач нужно подключать другие библиотеки.
React позволяет создавать одностраничные приложения single-page application и считается несложным в освоении.
Страницы в React создаются на основе модулей.
Особенности модулей:
- Модули должны быть небольшими - буквально 2-3 дива с текстом или картинка с описанием или ещё какая-то мелочь. Потом маленькие модули складываем в большие.
- Ещё одно требование к модулям - универсальность, один и тот же модуль будем использовать в разных местах страницы.
- Если в обычном сайте мы разделяем разметку и логику, помещая их в отдельные файлы index.html script.js, то в React каждый модуль содержит и разметку и логику.
Создавать первое приложение на React будем в песочнице: https://codesandbox.io/dashboard/
В файле index.js пишем код
import React from "react";
import ReactDOM from "react-dom";
function TodoItem(){
return (
<span>Drink coffee</span>
);
}
ReactDOM.render(<TodoItem/>, document.getElementById("root"));
Мы импортировали библиотеку React из модуля "react", библиотеку ReactDOM из модуля "react-dom" создали функцию TodoItem, которая будет возвращать модуль - один пункт списка дел, и сейчас внутри неё можем писать код, который очень напоминает обычный html. Это возможно благодаря JSX — расширению JavaScript для удобного создания компонентов в React. JSX нравится всем, отзываются о нём исключительно в превосходной степени.
JSX позволяет миксовать разметку и JavaScript. Примеры можно посмотреть здесь.
Любое JavaScript выражение можно встроить в JSX, обернув его в фигурные скобки:
function formatName(user) {
return user.firstName + ' ' + user.lastName;
}
const user = {
firstName: 'Harper',
lastName: 'Perez'
};
const element = (
<h1>
Hello, {formatName(user)}!
</h1>
);
Оборачивать код в круглые скобки не обязательно, но рекомендовано.
Сами JSX-выражения являются JavaScript-объектами.
Создадим ещё одну функцию TodoList - список дел.
function TodoList(){
return(
<ul>
<li><TodoItem/></li>
<li><TodoItem/></li>
<li><TodoItem/></li>
</ul>
)
}
Отрендерим её:
ReactDOM.render(<TodoList/>, document.getElementById("root"));
Здесь функция ReactDOM.render принимает два параметра:
- что рендерим <TodoList/> Закрывающая косая черта в одиночных тегах обязательна.
- и куда document.getElementById("root") Это div с id="root", который прописан в файле index.html.
Дополнительные материалы: сайт https://learn-reactjs.ru/