React для начинающих: с чего начать?
Пройдите тест, узнайте какой профессии подходите
Введение в React
React — это популярная библиотека JavaScript, разработанная компанией Facebook для создания пользовательских интерфейсов. Она позволяет разработчикам создавать масштабируемые и быстрые веб-приложения благодаря использованию компонентов и виртуального DOM. Если вы новичок в веб-разработке или хотите расширить свои знания, изучение React — отличный шаг. React широко используется в индустрии, и его знание может значительно повысить ваши шансы на успешную карьеру в веб-разработке.
React отличается от других библиотек и фреймворков своей компонентной архитектурой. Это означает, что приложение можно разбить на небольшие, повторно используемые части, что упрощает разработку и поддержку кода. Компоненты могут быть как простыми, так и сложными, и они могут включать в себя другие компоненты, создавая иерархию. Это делает React мощным инструментом для создания сложных пользовательских интерфейсов.
Установка и настройка окружения
Перед тем как начать работать с React, необходимо настроить окружение разработки. Для этого вам понадобятся Node.js и npm (Node Package Manager). Node.js позволяет запускать JavaScript на сервере, а npm — это менеджер пакетов, который помогает управлять зависимостями вашего проекта.
Шаг 1: Установка Node.js и npm
Перейдите на официальный сайт Node.js и скачайте последнюю LTS-версию. Установка Node.js автоматически установит и npm. Это важно, потому что npm будет использоваться для установки различных библиотек и инструментов, необходимых для разработки на React.
Шаг 2: Создание нового проекта
Для создания нового проекта React используйте Create React App — удобный инструмент, который автоматически настроит все необходимые зависимости и конфигурации. Create React App позволяет быстро настроить проект без необходимости вручную конфигурировать Webpack, Babel и другие инструменты.
npx create-react-app my-first-react-app
cd my-first-react-app
npm start
После выполнения этих команд откроется браузер с вашим первым React-приложением. Вы увидите приветственный экран с логотипом React, который вращается. Это означает, что ваше окружение настроено правильно, и вы готовы начать разработку.
Основы JSX и компоненты
JSX (JavaScript XML) — это синтаксис, который позволяет писать HTML-подобный код внутри JavaScript. Это делает код более читабельным и удобным для работы. JSX позволяет использовать HTML-теги прямо в JavaScript, что упрощает создание пользовательских интерфейсов.
Пример использования JSX
const element = <h1>Hello, world!</h1>;
Этот код создает элемент h1
с текстом "Hello, world!". JSX позволяет легко создавать иерархии элементов, что делает код более выразительным и понятным.
Компоненты в React
Компоненты — это основные строительные блоки React-приложений. Они могут быть функциональными или классовыми. Компоненты позволяют разбивать интерфейс на небольшие, повторно используемые части, что упрощает разработку и поддержку кода.
Функциональные компоненты
Функциональные компоненты — это простые функции, которые принимают пропсы и возвращают элементы React.
function Welcome(props) {
return <h1>Hello, {props.name}</h1>;
}
Классовые компоненты
Классовые компоненты — это более сложные компоненты, которые могут иметь состояние и методы жизненного цикла.
class Welcome extends React.Component {
render() {
return <h1>Hello, {this.props.name}</h1>;
}
}
Классовые компоненты предоставляют больше возможностей, но с введением хуков в React 16.8, функциональные компоненты стали более мощными и гибкими.
Состояние и пропсы
Состояние (state) и пропсы (props) — два основных способа управления данными в React. Пропсы используются для передачи данных от родительского компонента к дочернему, а состояние — для управления внутренними данными компонента.
Пропсы
Пропсы используются для передачи данных от родительского компонента к дочернему. Они передаются в компонент как аргументы и доступны через объект props
.
function Welcome(props) {
return <h1>Hello, {props.name}</h1>;
}
function App() {
return <Welcome name="Sara" />;
}
В этом примере компонент Welcome
получает проп name
и отображает его в элементе h1
.
Состояние
Состояние используется для управления внутренними данными компонента. Состояние может изменяться, и каждый раз, когда оно изменяется, компонент перерисовывается.
Использование состояния в классовых компонентах
class Clock extends React.Component {
constructor(props) {
super(props);
this.state = { date: new Date() };
}
componentDidMount() {
this.timerID = setInterval(() => this.tick(), 1000);
}
componentWillUnmount() {
clearInterval(this.timerID);
}
tick() {
this.setState({ date: new Date() });
}
render() {
return (
<div>
<h1>Hello, world!</h1>
<h2>It is {this.state.date.toLocaleTimeString()}.</h2>
</div>
);
}
}
Использование состояния в функциональных компонентах с хуками
import React, { useState, useEffect } from 'react';
function Clock() {
const [date, setDate] = useState(new Date());
useEffect(() => {
const timerID = setInterval(() => setDate(new Date()), 1000);
return () => clearInterval(timerID);
}, []);
return (
<div>
<h1>Hello, world!</h1>
<h2>It is {date.toLocaleTimeString()}.</h2>
</div>
);
}
Хуки позволяют использовать состояние и другие возможности React в функциональных компонентах, что делает их более мощными и гибкими.
Создание первого приложения
Теперь, когда вы знаете основы, давайте создадим простое приложение — список задач (To-Do List). Это приложение поможет вам закрепить полученные знания и понять, как компоненты взаимодействуют друг с другом.
Шаг 1: Создание компонента ToDoItem
Компонент ToDoItem
будет представлять отдельный элемент списка задач.
function ToDoItem(props) {
return (
<li>
{props.item.text}
</li>
);
}
Шаг 2: Создание компонента ToDoList
Компонент ToDoList
будет отображать список задач, используя компонент ToDoItem
для каждого элемента.
function ToDoList(props) {
return (
<ul>
{props.items.map((item, index) => (
<ToDoItem key={index} item={item} />
))}
</ul>
);
}
Шаг 3: Создание основного компонента App
Компонент App
будет управлять состоянием списка задач и предоставлять интерфейс для добавления новых задач.
class App extends React.Component {
constructor(props) {
super(props);
this.state = { items: [], text: '' };
}
handleChange = (e) => {
this.setState({ text: e.target.value });
}
handleSubmit = (e) => {
e.preventDefault();
if (this.state.text.length === 0) {
return;
}
const newItem = {
text: this.state.text,
id: Date.now()
};
this.setState(state => ({
items: state.items.concat(newItem),
text: ''
}));
}
render() {
return (
<div>
<h3>To-Do List</h3>
<ToDoList items={this.state.items} />
<form onSubmit={this.handleSubmit}>
<input
onChange={this.handleChange}
value={this.state.text}
/>
<button>
Add #{this.state.items.length + 1}
</button>
</form>
</div>
);
}
}
Итог
Поздравляем! Вы создали свое первое React-приложение. Теперь у вас есть базовые знания о React, и вы можете продолжать изучение более сложных концепций и создавать более сложные приложения. 🚀
Изучение React — это увлекательный процесс, который откроет перед вами множество возможностей в мире веб-разработки. Не останавливайтесь на достигнутом, продолжайте изучать новые функции и подходы, и вы станете настоящим мастером в создании пользовательских интерфейсов.