React

JavaScript-библиотека для создания пользовательских интерфейсов

Декларативный

React делает безболезным создание интерактивных пользовательских интерфейсов. Создавайте простые представления для каждого состояния вашего приложения, и React будет эффективно обновлять и отрисовать только нужные компоненты при изменении ваших данных.

Декларативные представления делают ваш код более предсказуемым и легче для отладки.

Основан на компонентах

Создавайте инкапсулированные компоненты, которые управляют своим состоянием, а затем компонуйте их для создания сложных пользовательских интерфейсов.

Поскольку логика компонента написана на JavaScript вместо использования шаблонов, вы можете легко передавать различного типа данных через своё приложение и сохранять состояние вне DOM.

Учитесь один раз — пишите где угодно

Мы не строим предположений относительно остальной части вашего технологического стека, поэтому вы можете разрабатывать новые возможности в React без перезаписи существующего кода.

React также может работать на сервере с помощью Node и может быть задействован на мобильных приложениях с использованием React Native.


Простой компонент

Компоненты React реализуют метод render(), который принимает входные данные и возвращает данные для отображения. В этом примере используется XML-подобный синтаксис JSX. Входные данные, которые передаются в компонент, могут быть доступны в render() через this.props.

JSX необязателен и не его требуется использовать в React. Попробуйте REPL Babel, чтобы увидеть необработанный код JavaScript, созданный на этапе компиляции JSX.

Компоненты с состоянием

Помимо ввода входных данных (доступных через this.props), компонент может поддерживать внутренние данные состояния (доступные через this.state). Когда данные состояния компонента изменяются, отрисованная разметка будет обновляться путём повторного вызова render().

Приложение

Используя props иstate, мы можем создать небольшое приложение со списком дел. В этом примере используется state для отслеживания текущего списка элементов, а также текста, введённого пользователем. Хотя обработчики событий, по всей видимости, встроенные в разметку, они собираются и реализуются с помощью делегирования событий.

Компонент, использующий внешние плагины

React — гибкий и предоставляет хуки, позволяющие вам взаимодействовать с другими библиотеками и фреймворками. В этом примере используется remarkable, внешняя библиотека для работы с Markdown, чтобы преобразовать значение <textarea> в режиме реального времени.