React.js — это популярная библиотека JavaScript для создания пользовательских интерфейсов, особенно для создания одностраничных приложений (SPA), которые запускаются в веб-браузере. Если вы новичок в React, это руководство поможет вам изучить основы и поможет вам приступить к созданию своего первого приложения React.

Что такое Реакт?
React — это декларативная, эффективная и гибкая библиотека JavaScript для создания пользовательских интерфейсов. Он был разработан Facebook и часто используется для создания веб-приложений и мобильных приложений.
Одной из ключевых особенностей React является его виртуальная DOM (объектная модель документа). Виртуальный DOM — это облегченное представление фактического DOM в памяти, которое позволяет React оптимизировать рендеринг, сводя к минимуму количество манипуляций с DOM, необходимых при изменении состояния вашего приложения. Это делает приложения React быстрыми и эффективными.
Начало работы с React
Чтобы начать работу с React, на вашем компьютере должна быть установлена последняя версия Node.js и npm (менеджер пакетов для Node).
Чтобы создать новый проект React, вы можете использовать инструмент командной строки create-react-app. Откройте терминал и выполните следующую команду:
npm install -g create-react-app
Это установит инструмент create-react-app глобально на вашем компьютере.
Затем перейдите в каталог, в котором вы хотите создать новое приложение React, и выполните следующую команду:
create-react-app my-app
Это создаст новый каталог под названием «my-app» с базовым каркасом приложения React.
Ваш первый компонент React
Компонент React — это фрагмент кода, представляющий часть пользовательского интерфейса. Компоненты можно повторно использовать и составлять для создания более крупных и сложных пользовательских интерфейсов.
В новом приложении React откройте файл src/App.js. Это корневой компонент вашего приложения, и именно здесь вы будете выполнять большую часть своей работы.
Компонент App — это функция, которая возвращает элемент React. Элемент React — это упрощенное описание того, что вы хотите отобразить на экране.
Вот код компонента App:
import React from 'react';
function App() {
return (
<div>
<h1>Hello, World!</h1>
</div>
);
}
export default App;
Этот компонент отображает элемент заголовка с надписью «Hello, World!».
Чтобы увидеть свой компонент в действии, откройте терминал и перейдите в корневой каталог вашего приложения. Затем выполните следующую команду:
npm start
Это запустит сервер разработки и откроет ваше приложение в новом окне браузера. Вы должны увидеть «Hello, World!» заголовок, отображаемый на экране.
Добавление состояния к вашему компоненту
До сих пор ваш компонент был просто статическим фрагментом разметки. Но у большинства компонентов React есть какое-то внутреннее состояние, которое они используют для управления своим поведением и отображения динамического контента.
Чтобы добавить состояние к вашему компоненту, вам нужно использовать компонент класса. Компонент класса — это класс JavaScript, расширяющий базовый класс React.Component.
Вот как вы можете преобразовать свой компонент App в компонент класса:
import React from 'react';
class App extends React.Component {
constructor(props) {
super(props);
this.state = {
message: 'Hello, World!'
};
Обновление компонента
Чтобы обновить состояние вашего компонента, вам нужно использовать метод setState. Этот метод принимает объект, представляющий новое состояние, и объединяет новое состояние с текущим состоянием.
Вот пример того, как вы можете обновить состояние message в компоненте App:
class App extends React.Component {
constructor(props) {
super(props);
this.state = {
message: 'Hello, World!'
};
}
updateMessage() {
this.setState({
message: 'Hello, React!'
});
}
render() {
return (
<div>
<h1>{this.state.message}</h1>
<button onClick={() => this.updateMessage()}>Update Message</button>
</div>
);
}
}
В этом примере метод updateMessage обновляет состояние message при нажатии кнопки. Это приведет к повторному рендерингу компонента с новым сообщением.
Передача данных с реквизитами
Помимо управления собственным состоянием, компоненты React также могут принимать данные от своих родительских компонентов в виде свойств. Реквизиты — это сокращение от «свойства», и они позволяют вам передавать данные от родительского компонента к дочернему компоненту.
Вот пример того, как вы можете передать свойство от родительского компонента к дочернему компоненту:
import React from 'react';
function App() {
const greeting = 'Hello, React!';
return (
<div>
<Greeting greeting={greeting} />
</div>
);
}
function Greeting(props) {
return <h1>{props.greeting}</h1>;
}
export default App;
В этом примере компонент App передает свойство greeting компоненту Greeting. Компонент Greeting отображает приветствие, отображая реквизит greeting в элементе заголовка.
import React from 'react';
class App extends React.Component {
constructor(props) {
super(props);
this.state = {
message: 'Hello, World!'
};
}
updateMessage() {
this.setState({
message: 'Hello, React!'
});
}
render() {
return (
<div>
<h1>{this.state.message}</h1>
<button onClick={() => this.updateMessage()}>Update Message</button>
</div>
);
}
}
export default App;
В этом примере метод updateMessage вызывается при нажатии кнопки. Этот метод обновляет состояние message и вызывает повторную визуализацию компонента с новым сообщением.
Использование хуков React
React Router — популярная библиотека для создания маршрутизации на стороне клиента в приложениях React. Это позволяет вам определять маршруты в вашем приложении и сопоставлять их с различными компонентами.
Чтобы использовать React Router в своем приложении, вам необходимо установить его как зависимость:
npm install react-router-dom
После того, как вы установили React Router, вы можете использовать компонент BrowserRouter для переноса вашего приложения и компонент Route для определения маршрутов.
Вот пример того, как вы можете использовать React Router для создания многостраничного приложения:
import React from 'react';
import { BrowserRouter, Route } from 'react-router-dom';
import Home from './Home';
import About from './About';
import Contact from './Contact';
function App() {
return (
<BrowserRouter>
<div>
<Route exact path="/" component={Home} />
<Route path="/about" component={About} />
<Route path="/contact" component={Contact} />
</div>
</BrowserRouter>
);
}
export default App;
В этом примере у приложения есть три маршрута: "/", "/about" и "/contact". Каждый маршрут сопоставляется с другим компонентом, который будет отображаться, когда маршрут активен.
Заключение
React — это мощная и гибкая библиотека JavaScript для создания пользовательских интерфейсов. Благодаря декларативному синтаксису, эффективному рендерингу и возможности управления состоянием и побочными эффектами React упрощает создание современных веб-приложений.
Нам еще многое предстоит узнать о React, но это руководство должно дать вам хорошую основу для создания собственных приложений. Если вы хотите погрузиться глубже, ознакомьтесь с официальной документацией React и сообществом React на Stack Overflow и Reddit.
Спасибо за прочтение. Если вам понравился этот учебник, подпишитесь на другие статьи!