JavaScript-бібліотека для створення користувацьких інтерфейсів
React спрощує створення інтерактивних інтерфейсів. Вам потрібно лише описати, як різні частини інтерфейсу виглядають у кожному стані вашого додатку і React ефективно оновить та відрендерить лише потрібні компоненти, коли ваші дані зміняться.
Декларативні інтерфейси роблять ваш код більш передбачуваним і його набагато легше налагоджувати.
Створюйте інкапсульовані компоненти, які керують власним станом, а з них будуйте складні інтерфейси.
Оскільки логіка компонентів написана на JavaScript, замість шаблонів, ви з легкістю можете передавати складні дані у вашому додатку і зберігати стан окремо від DOM.
Ми не робимо припущень щодо стеку технологій які ви використовуєте, тому ви можете розробляти нові функції в React, не переписуючи існуючий код.
React також може рендеритись на сервері, використовуючи Node, і приводити в дію мобільні додатки, які використовують React Native.
Компоненти реалізують метод render(), який приймає вхідні дані і повертає те, що буде показано користувачу. У цьому прикладі використовується XML-подібний синтаксис під назвою JSX. Доступ до вхідних даних, які передаються в компонент, можна отримати за допомогою render() та this.props.
JSX не є обов’язковим для React. Спробуйте Babel REPL, щоб побачити необроблений код JavaScript, створений на етапі компіляції JSX.
У доповнення до прийняття вхідних даних (доступ до яких здійснюється через this.props), компонент може зберігати дані внутрішнього стану (доступні через this.state). Коли дані стану компонента змінюються, відбувається повторне відрендерення розмітки з використанням функції render().
Використовуючи пропси і стан, ми можемо створити невеликий додаток для складання списку справ. Цей приклад використовує стан для відстеження поточного списку елементів, а також тексту, введеного користувачем. Хоча обробники подій здаються вбудованими, вони будуть зібрані та реалізовані за допомогою методу делегування подій.
React дозволяє взаємодіяти з іншими бібліотеками та фреймворками. У цьому прикладі використана дивовижна зовнішня бібліотека — Markdown, для зміни значення <textarea> в реальному часі.