Реагировать (библиотека JavaScript)
В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
Оригинальный автор(ы) | Джордан Уок |
---|---|
Разработчик(и) | Мета и сообщество |
Первоначальный выпуск | 29 мая 2013 г [1] |
Стабильная версия | 18.3.1 [2]
/ 26 апреля 2024 г |
Предварительный выпуск | 19.0- бета
/ 25 апреля 2024 г [3] |
Репозиторий | |
Написано в | JavaScript |
Платформа | Веб-платформа |
Тип | библиотека JavaScript |
Лицензия | МОЯ лицензия |
Веб-сайт | реагировать |
React (также известный как React.js или ReactJS ) — это с открытым исходным кодом. бесплатная интерфейсная библиотека JavaScript [4] [5] для создания интерфейсов на основе компонентов Inc. Facebook пользовательских Он поддерживается Meta (ранее Facebook) и сообществом отдельных разработчиков и компаний. [6] [7] [8]
React можно использовать для разработки одностраничных , мобильных или серверных приложений с помощью таких фреймворков, Next.js. как Поскольку React занимается только пользовательским интерфейсом и рендерингом компонентов в DOM , приложения React часто полагаются на библиотеки для маршрутизации и других функций на стороне клиента. [9] [10] Ключевое преимущество React заключается в том, что он перерисовывает только те части страницы, которые изменились, избегая ненужного повторного рендеринга неизмененных элементов DOM. Впервые он был запущен 29 мая 2013 года.
Примечательные особенности
[ редактировать ]Декларативный
[ редактировать ]React придерживается декларативного программирования парадигмы . [11] : 76 Разработчики создают представления для каждого состояния приложения, а React обновляет и отображает компоненты при изменении данных. Это контрастирует с императивным программированием . [12]
Компоненты
[ редактировать ]Код React состоит из сущностей, называемых компонентами . [11] : 10–12 Эти компоненты являются модульными и могут использоваться повторно. [11] : 70 Приложения React обычно состоят из множества слоев компонентов. Компоненты визуализируются в корневом элементе DOM с помощью библиотеки React DOM. При рендеринге компонента значения передаются между компонентами через реквизиты (сокращение от «свойства») . Внутренние значения компонента называются его состоянием. [13]
Два основных способа объявления компонентов в React — через функциональные компоненты и компоненты классов. [11] : 118 [14] : 10
Функциональные компоненты
[ редактировать ]Компоненты функции объявляются с помощью функции (с использованием синтаксиса функции JavaScript или выражения функции стрелки ), которая принимает один аргумент «props» и возвращает JSX. Начиная с React v16.8, функциональные компоненты могут использовать состояние с помощью useState
Крюк.
Реагирующие хуки
[ редактировать ]16 февраля 2019 года была выпущена общедоступная версия React 16.8, в которой представлены React Hooks. [15] Хуки — это функции, которые позволяют разработчикам «подключаться» к состоянию и функциям жизненного цикла React из функциональных компонентов. [16] Примечательно, что хуки не работают внутри классов — они позволяют разработчикам использовать больше возможностей React без классов. [17]
React предоставляет несколько встроенных хуков, таких как useState
, [18] [14] : 37 useContext
, [11] : 11 [19] [14] : 12 useReducer
, [11] : 92 [19] [14] : 65–66 useMemo
[11] : 154 [19] [14] : 162 и useEffect
. [20] [14] : 93–95 Другие описаны в Справочнике по API-интерфейсам Hooks. [21] [11] : 62 useState
и useEffect
, которые наиболее часто используются, предназначены для управления состоянием [11] : 37 и побочные эффекты, [11] : 61 соответственно.
Правила крючков
[ редактировать ]Есть два правила крючков [22] которые описывают характерные шаблоны кода, на которые полагаются перехватчики:
- «Вызывайте хуки только на верхнем уровне» — не вызывайте хуки из внутренних циклов, условий или вложенных операторов, чтобы хуки вызывались в одном и том же порядке при каждом рендеринге.
- «Вызывайте перехватчики только из функций React» — не вызывайте перехватчики из простых функций JavaScript, чтобы логика с сохранением состояния оставалась в компоненте.
Хотя эти правила не могут быть соблюдены во время выполнения, инструменты анализа кода, такие как линтеры, можно настроить для обнаружения многих ошибок во время разработки. Правила применяются как к использованию хуков, так и к реализации пользовательских хуков. [23] который может вызывать другие хуки.
Компоненты сервера
[ редактировать ]Серверные компоненты React или «RSC» [24] — это функциональные компоненты, которые работают исключительно на сервере. Эта концепция была впервые представлена в докладе « Извлечение данных с помощью серверных компонентов». Хотя концепция аналогична рендерингу на стороне сервера, RSC не отправляют соответствующий JavaScript клиенту, поскольку не происходит гидратации. В результате у них нет доступа к крючкам. Однако они могут быть асинхронными функциями , позволяющими напрямую выполнять асинхронные операции:
async function MyComponent() {
const message = await fetchMessageFromDb();
return (
<div>Message: {message}</div>
);
}
легче всего использовать с Next.js. В настоящее время серверные компоненты
Компоненты класса
[ редактировать ]Компоненты класса объявляются с использованием классов ES6 . Они ведут себя так же, как функциональные компоненты, но вместо использования перехватчиков для управления событиями состояния и жизненного цикла они используют методы жизненного цикла на React.Component
базовый класс .
class ParentComponent extends React.Component {
state = { color: 'green' };
render() {
return (
<ChildComponent color={this.state.color} />
);
}
}
Внедрение React Hooks в React 16.8 в феврале 2019 года позволило разработчикам управлять поведением состояний и жизненного цикла внутри функциональных компонентов, снижая зависимость от компонентов классов.
Эта тенденция согласуется с более широким движением отрасли в сторону функционального программирования и модульного дизайна. Поскольку React продолжает развиваться, разработчикам важно учитывать преимущества функциональных компонентов и React Hooks при создании новых приложений или рефакторинге существующих. [25]
Маршрутизация
[ редактировать ]Сам React не имеет встроенной поддержки маршрутизации . React — это прежде всего библиотека для создания пользовательских интерфейсов, и она не включает в себя полноценное решение для маршрутизации «из коробки». Сторонние библиотеки можно использовать для управления маршрутизацией в приложениях React. [26] Это позволяет разработчику определять маршруты, управлять навигацией и обрабатывать изменения URL-адресов удобным для React способом.
Виртуальный DOM
[ редактировать ]Еще одной примечательной особенностью является использование виртуальной объектной модели документа или Virtual DOM . React создает кэш структуры данных в памяти , вычисляет полученные различия, а затем эффективно обновляет отображаемый в браузере DOM. [27] Этот процесс называется примирением . Это позволяет программисту писать код так, как если бы при каждом изменении отображалась вся страница, в то время как React отображает только те компоненты, которые действительно изменяются. Этот выборочный рендеринг обеспечивает значительный прирост производительности. [28]
Обновления
[ редактировать ]Когда ReactDOM.render
[29] вызывается снова для того же компонента и цели, React представляет новое состояние пользовательского интерфейса в виртуальном DOM и определяет, какие части (если таковые имеются) живого DOM необходимо изменить. [30]
Методы жизненного цикла
[ редактировать ]Методы жизненного цикла для компонентов на основе классов используют форму перехвата , которая позволяет выполнять код в заданные точки в течение срока службы компонента.
ShouldComponentUpdate
позволяет разработчику предотвратить ненужную повторную визуализацию компонента, возвращая false, если визуализация не требуется.componentDidMount
вызывается после того, как компонент «смонтирован» (компонент создан в пользовательском интерфейсе, часто путем его связывания с узлом DOM ). Обычно это используется для запуска загрузки данных из удаленного источника через API .componentDidUpdate
вызывается сразу после того, как происходит обновление. [31]componentWillUnmount
вызывается непосредственно перед тем, как компонент будет снесен или «размонтирован». Обычно это используется для очистки ресурсоемких зависимостей компонента, которые невозможно просто удалить при размонтировании компонента (например, при удалении любыхsetInterval()
экземпляры, связанные с компонентом, или « eventListener », установленный в «документе» из-за присутствия компонента)render
— это наиболее важный метод жизненного цикла и единственный необходимый в любом компоненте. Обычно он вызывается каждый раз при обновлении состояния компонента, что должно быть отражено в пользовательском интерфейсе.
JSX
[ редактировать ]JSX или JavaScript XML — это расширение синтаксиса языка JavaScript. [32] По внешнему виду похож на HTML, [11] : 11 JSX предоставляет способ структурировать рендеринг компонентов, используя знакомый синтаксис. [11] : 15 для многих разработчиков. Компоненты React обычно пишутся с использованием JSX, хотя это не обязательно (компоненты также могут быть написаны на чистом JavaScript). JSX похож на другой синтаксис расширения, созданный Facebook для PHP, который называется XHP .
Пример JSX-кода:
class App extends React.Component {
render() {
return (
<div>
<p>Header</p>
<p>Content</p>
<p>Footer</p>
</div>
);
}
}
Архитектура за пределами HTML
[ редактировать ]Базовая архитектура React не ограничивается рендерингом HTML в браузере. Например, в Facebook есть динамические диаграммы, которые отображаются в <canvas>
теги, [33] а Netflix и PayPal используют универсальную загрузку для рендеринга идентичного HTML как на сервере, так и на клиенте. [34] [35]
Серверный рендеринг
[ редактировать ]Рендеринг на стороне сервера (SSR) — это процесс рендеринга клиентского приложения JavaScript на сервере, а не в браузере. Это может повысить производительность приложения, особенно для пользователей с медленными соединениями или устройствами.
При использовании SSR исходный HTML-код, отправляемый клиенту, включает полностью визуализированный пользовательский интерфейс приложения. Это позволяет браузеру клиента немедленно отображать пользовательский интерфейс, вместо того, чтобы ждать загрузки и выполнения JavaScript перед отрисовкой пользовательского интерфейса.
React поддерживает SSR, что позволяет разработчикам отображать компоненты React на сервере и отправлять полученный HTML-код клиенту. Это может быть полезно для улучшения производительности приложения, а также в целях поисковой оптимизации .
Распространенные идиомы
[ редактировать ]React не пытается предоставить полную библиотеку приложений. Он разработан специально для создания пользовательских интерфейсов. [4] и поэтому не включает в себя многие инструменты, которые некоторые разработчики могут счесть необходимыми для создания приложения. Это позволяет выбирать, какие библиотеки предпочитает разработчик для выполнения таких задач, как доступ к сети или локальное хранилище данных. Общие модели использования возникли по мере развития библиотеки.
Однонаправленный поток данных
[ редактировать ]Для поддержки концепции однонаправленного потока данных React (которая может контрастировать с двунаправленным потоком AngularJS ) была разработана архитектура Flux как альтернатива популярной архитектуре модель-представление-контроллер . Flux содержит действия , которые отправляются через центральный диспетчер в хранилище , а изменения в хранилище распространяются обратно в представление. [36] При использовании с React это распространение осуществляется через свойства компонента. С момента своего создания Flux был заменен такими библиотеками, как Redux и MobX. [37]
Поток можно рассматривать как вариант модели наблюдателя . [38]
Компонент React в архитектуре Flux не должен напрямую изменять какие-либо реквизиты, переданные ему, но ему должны передаваться функции обратного вызова , которые создают действия , которые отправляются диспетчером для изменения хранилища. Действие — это объект, ответственность которого заключается в описании того, что произошло: например, действие, описывающее, что один пользователь «следует» за другим, может содержать идентификатор пользователя, целевой идентификатор пользователя и тип USER_FOLLOWED_ANOTHER_USER
. [39] Магазины, которые можно рассматривать как модели, могут изменяться в ответ на действия, полученные от диспетчера.
Эту закономерность иногда выражают как «свойства текут вниз, действия текут вверх». С момента его создания было создано множество реализаций Flux, возможно, самой известной из них является Redux , который имеет единое хранилище, часто называемое единым источником истины . [40]
В феврале 2019 года useReducer
был представлен как перехватчик React в версии 16.8. Он предоставляет API, совместимый с Redux, что позволяет разработчикам создавать хранилища, подобные Redux, которые являются локальными для состояний компонентов. [41]
Будущее развитие
[ редактировать ]Статус проекта можно отслеживать через дискуссионный форум основной команды. [42] Однако основные изменения в React происходят из-за проблем с репозиторием Future of React и запросов на включение . [43] [44] Это позволяет сообществу React оставлять отзывы о новых потенциальных функциях, экспериментальных API и улучшениях синтаксиса JavaScript.
История
[ редактировать ]React был создан Джорданом Уоком, инженером-программистом из Meta , который первоначально разработал прототип под названием «F-Bolt». [45] прежде чем позже переименовать его в «FaxJS». Эта ранняя версия задокументирована в репозитории Джордана Уока на GitHub. [1] Влияние на проект оказала XHP , библиотека компонентов HTML для PHP .
Facebook React был впервые развернут в ленте новостей в 2011 году, а затем интегрирован в Instagram в 2012 году. [ нужна ссылка ] . В мае 2013 года на JSConf US проект был официально открыт с открытым исходным кодом, что стало важным поворотным моментом в его принятии и развитии. [2]
React Native , который обеспечивает нативную разработку для Android , iOS и UWP с помощью React, был анонсирован на конференции Facebook React Conf в феврале 2015 года и открыт в марте 2015 года.
18 апреля 2017 года Facebook анонсировал React Fiber, новый набор внутренних алгоритмов рендеринга в отличие от старого алгоритма рендеринга React Stack. [46] React Fiber должен был стать основой для любых будущих улучшений и развития функций библиотеки React. [47] [ нужно обновить ] Фактический синтаксис программирования с помощью React не меняется; изменился только способ выполнения синтаксиса. [48] Старая система рендеринга React, Stack, была разработана в то время, когда еще не осознавалась направленность системы на динамические изменения. Стек медленно рисовал сложную анимацию, например, пытаясь выполнить все это за один фрагмент. Fiber разбивает анимацию на сегменты, которые можно распределить по нескольким кадрам. Аналогично, структура страницы может быть разбита на сегменты, которые можно обслуживать и обновлять отдельно. Функции JavaScript и виртуальные объекты DOM называются «волокнами», и каждым из них можно управлять и обновлять отдельно, что обеспечивает более плавный рендеринг на экране. [49]
26 сентября 2017 года React 16.0 был выпущен для широкой публики. [50]
10 августа 2020 года команда React объявила о первом кандидате на выпуск React v17.0, который известен как первый крупный выпуск без серьезных изменений в API React, ориентированном на разработчиков. [51]
29 марта 2022 года был выпущен React 18, в котором появился новый параллельный рендеринг, автоматическая пакетная обработка и поддержка рендеринга на стороне сервера с помощью Suspense. [52]
Лицензирование
[ редактировать ]В первом публичном выпуске React в мае 2013 года использовалась лицензия Apache 2.0 . В октябре 2014 года React 0.12.00 заменил ее лицензией BSD из трех пунктов и добавил отдельный текстовый файл ПАТЕНТЫ, который разрешает использование любых патентов Facebook, связанных с программным обеспечением: [53]
Лицензия, предоставленная по настоящему Соглашению, автоматически и без предварительного уведомления прекращается для любого лица, которое предъявляет какие-либо претензии (в том числе путем подачи иска, утверждения или иного действия), утверждая (а) прямое, косвенное или сопутствующее нарушение или побуждение к нарушению какого-либо патента: (i ) Facebook или любой из ее дочерних компаний или филиалов, независимо от того, связана ли такая претензия с Программным обеспечением, (ii) любой стороной, если такая претензия возникает полностью или частично из любого программного обеспечения, продукта или услуги Facebook или любого из ее дочерние компании или филиалы, независимо от того, связана ли такая претензия с Программным обеспечением, или (iii) со стороны любой стороны, имеющей отношение к Программному обеспечению; или (б) что любое право на любую патентную претензию Facebook является недействительным или не имеющим исковой силы.
Это нетрадиционное положение вызвало некоторые споры и дебаты в сообществе пользователей React, поскольку его можно было истолковать как предоставление Facebook возможности отозвать лицензию во многих сценариях, например, если Facebook подает в суд на лицензиата, побуждая его предпринять «другие действия», опубликовав действие. в блоге или где-нибудь еще. Многие выразили обеспокоенность тем, что Facebook может несправедливо использовать положение о прекращении действия соглашения или что интеграция React в продукт может усложнить будущее приобретение стартап-компании. [54]
Основываясь на отзывах сообщества, Facebook в апреле 2015 года обновил условия выдачи патента, сделав их менее двусмысленными и более либеральными: [55]
Лицензия, предоставленная по настоящему Соглашению, будет прекращена автоматически и без предварительного уведомления, если вы (или любая из ваших дочерних компаний, корпоративных филиалов или агентов) инициируете прямо или косвенно или проявляете прямую финансовую заинтересованность в любом патентном утверждении: (i) против Facebook или любого другого лица. своих дочерних компаний или корпоративных филиалов, (ii) против любой стороны, если такая Патентная заявка полностью или частично возникает из любого программного обеспечения, технологии, продукта или услуги Facebook или любой из ее дочерних компаний или корпоративных филиалов, или (iii) против любой стороны относящиеся к Программному обеспечению. [...] «Патентное утверждение» — это любой иск или иное действие, в котором утверждается прямое, косвенное или сопутствующее нарушение или побуждение к нарушению любого патента, включая встречный иск или встречный иск. [56]
Фонд Apache Software Foundation счел это соглашение о лицензировании несовместимым с его политикой лицензирования, поскольку оно «переносит риск для последующих потребителей нашего программного обеспечения, несбалансированный в пользу лицензиара, а не лицензиата, тем самым нарушая нашу правовую политику Apache, заключающуюся в том, чтобы быть универсальным донором». «и «не являются подмножеством тех, которые содержатся в [Apache License 2.0], и их нельзя сублицензировать как [Apache License 2.0]». [57] В августе 2017 года Facebook отвергла опасения Apache Foundation и отказалась пересмотреть свою лицензию. [58] [59] В следующем месяце WordPress решила перевести свои проекты Gutenberg и Calypso с React. [60]
23 сентября 2017 года Facebook объявил, что на следующей неделе он повторно лицензирует Flow, Jest, React и Immutable.js в соответствии со стандартной лицензией MIT ; компания заявила, что React является «основой широкой экосистемы программного обеспечения с открытым исходным кодом для Интернета», и что они не хотят «сдерживать прогресс по нетехническим причинам». [61]
26 сентября 2017 г. был выпущен React 16.0.0 с лицензией MIT. [62] Изменение лицензии MIT также было перенесено в версию 15.x с помощью React 15.6.2. [63]
См. также
[ редактировать ]- Angular (веб-фреймворк)
- Backbone.js
- Эмбер.js
- Гэтсби (фреймворк JavaScript)
- Next.js
- Машинопись
- Стройный
- Vue.js
- Сравнение веб-фреймворков на основе JavaScript
- Веб-компоненты
Ссылки
[ редактировать ]- ^ Оккино, Том; Уок, Джордан (5 августа 2013 г.). «JS-приложения в Facebook» . Ютуб . Архивировано из оригинала 31 мая 2022 года . Проверено 22 октября 2018 г.
- ^ https://registry.npmjs.com/react .
{{cite web}}
: Отсутствует или пусто|title=
( помощь ) - ^ «Что нового в React 19» . Архивировано из оригинала 12 мая 2024 г. Проверено 12 мая 2024 г.
- ^ Перейти обратно: а б «React — библиотека JavaScript для создания пользовательских интерфейсов» . сайт реакцииjs.org . Архивировано из оригинала 8 апреля 2018 года . Проверено 7 апреля 2018 г.
- ^ «Глава 1. Что такое React? — Что такое React и почему это важно [Книга]» . www.oreilly.com . Архивировано из оригинала 6 мая 2023 года . Проверено 6 мая 2023 г.
- ^ Крил, Пол (15 мая 2014 г.). «React: создание более быстрых и плавных пользовательских интерфейсов для веб-приложений, управляемых данными» . Инфомир . Архивировано из оригинала 12 июня 2018 г. Проверено 23 февраля 2021 г.
- ^ Хемель, Зеф (3 июня 2013 г.). «Библиотека пользовательских интерфейсов React JavaScript от Facebook получает неоднозначные отзывы» . infoq.com . Архивировано из оригинала 26 мая 2022 года . Проверено 11 января 2022 г.
- ^ Доусон, Крис (25 июля 2014 г.). «История JavaScript и как она привела к появлению ReactJS» . Новый стек . Архивировано из оригинала 6 августа 2020 г. Проверено 19 июля 2020 г.
- ^ Вы 2017 .
- ^ Панчал 2022 .
- ^ Перейти обратно: а б с д и ж г час я дж к л Верух 2020 .
- ^ Шварцмюллер 2018 .
- ^ «Компоненты и реквизит» . Реагируйте . Фейсбук. Архивировано из оригинала 7 апреля 2018 года . Проверено 7 апреля 2018 г.
- ^ Перейти обратно: а б с д и ж Ларсен 2021 .
- ^ «Знакомство с крючками» . реакция.js. Архивировано из оригинала 25 октября 2018 г. Проверено 20 мая 2019 г.
- ^ «Краткий обзор крючков – React» . сайт реакцииjs.org . Архивировано из оригинала 15 марта 2023 г. Проверено 8 августа 2019 г.
- ^ «Что, черт возьми, такое React Hooks?» . Сошаче . 16 января 2020 г. Архивировано из оригинала 31 мая 2022 г. Проверено 24 января 2020 г.
- ^ «Использование State Hook – React» . сайт реакцииjs.org . Архивировано из оригинала 30 июля 2022 г. Проверено 24 января 2020 г.
- ^ Перейти обратно: а б с «Использование State Hook – React» . сайт реакцииjs.org . Архивировано из оригинала 30 июля 2022 г. Проверено 24 января 2020 г.
- ^ «Использование хука эффекта – React» . сайт реакцииjs.org . Архивировано из оригинала 01 августа 2022 г. Проверено 24 января 2020 г.
- ^ «Справочник по API хуков – React» . сайт реакцииjs.org . Архивировано из оригинала 05 августа 2022 г. Проверено 24 января 2020 г.
- ^ «Правила хуков — React» . сайт реакцииjs.org . Архивировано из оригинала 6 июня 2021 г. Проверено 24 января 2020 г.
- ^ «Создание собственных хуков – React» . сайт реакцииjs.org . Архивировано из оригинала 17 июля 2022 г. Проверено 24 января 2020 г.
- ^ «React Labs: над чем мы работаем – март 2023 г.» . реакция.dev . Архивировано из оригинала 26 июля 2023 г. Проверено 23 июля 2023 г.
- ^ Чурасия, Равнак (08 марта 2023 г.). «Преобразовать компонент класса в компонент функции (стрелка) — React» . Код на неполный рабочий день . Архивировано из оригинала 15 августа 2023 г. Проверено 15 августа 2023 г.
- ^ «Освоение React Router — полное руководство» . 12 июля 2023 г. Архивировано из оригинала 26 июля 2023 г. Проверено 26 июля 2023 г.
- ^ «Ссылки и DOM» . Реагирующий блог . Архивировано из оригинала 07 августа 2022 г. Проверено 19 июля 2021 г.
- ^ «Реакция: виртуальный DOM» . Кодакадемия . Архивировано из оригинала 28 октября 2021 г. Проверено 14 октября 2021 г.
- ^ «ReactDOM – Реагировать» . сайт реакцииjs.org . Архивировано из оригинала 8 января 2023 г. Проверено 8 января 2023 г.
- ^ «Примирение – Реагировать» . сайт реакцииjs.org . Архивировано из оригинала 8 января 2023 г. Проверено 8 января 2023 г.
- ^ «React.Component – React» . Legacy.reactjs.org . Архивировано из оригинала 9 апреля 2024 г. Проверено 9 апреля 2024 г.
- ^ «Черновик: спецификация JSX» . JSX . Фейсбук. 08.03.2022. Архивировано из оригинала 02 апреля 2022 г. Проверено 7 апреля 2018 г.
- ^ Хант, Пит (5 июня 2013 г.). «Почему мы создали React? – Блог React» . сайт реакцииjs.org . Архивировано из оригинала 06 апреля 2015 г. Проверено 17 февраля 2022 г.
- ^ «Изоморфная реакция PayPal» . Medium.com . 27 апреля 2015 г. Архивировано из оригинала 08 февраля 2019 г. Проверено 8 февраля 2019 г.
- ^ «Изоморфная реакция Netflix» . netflixtechblog.com . 28 января 2015 г. Архивировано из оригинала 17 декабря 2016 г. Проверено 14 февраля 2022 г.
- ^ «Подробный обзор» . Флюс . Фейсбук. Архивировано из оригинала 7 августа 2022 года . Проверено 7 апреля 2018 г.
- ^ «Флюкс-релиз 4.0» . Гитхаб . Архивировано из оригинала 31 мая 2022 года . Проверено 26 февраля 2021 г.
- ^ Джонсон, Николас. «Введение в Flux — упражнение по React» . Николас Джонсон . Архивировано из оригинала 31 мая 2022 года . Проверено 7 апреля 2018 г.
- ^ Абрамов, Дэн. «История React и Flux с Дэном Абрамовым» . Три разработчика и «Может быть» . Архивировано из оригинала 19 апреля 2018 года . Проверено 7 апреля 2018 г.
- ^ «Инструменты управления состоянием – Результаты» . Состояние JavaScript . Архивировано из оригинала 31 мая 2022 года . Проверено 29 октября 2021 г.
- ^ «React v16.8: тот, с крючками» . Архивировано из оригинала 8 января 2023 г. Проверено 8 января 2023 г.
- ^ «Записки встречи» . Реагировать Обсудить . Архивировано из оригинала 22 декабря 2015 г. Проверено 13 декабря 2015 г.
- ^ «reactjs/react-future — будущее React» . Гитхаб . Архивировано из оригинала 13 июля 2022 г. Проверено 13 декабря 2015 г.
- ^ «facebook/react — Проблемы с запросом функции» . Гитхаб . Архивировано из оригинала 9 июля 2022 г. Проверено 13 декабря 2015 г.
- ^ «React.js: документальный фильм» . Ютуб . Медовый горшок. 10 февраля 2023 г. Архивировано из оригинала 19 января 2024 г. Проверено 27 мая 2024 г.
- ^ Лардинуа 2017 .
- ^ «Реагировать на волоконную архитектуру» . Гитхаб . Архивировано из оригинала 10 мая 2018 года . Проверено 19 апреля 2017 г.
- ^ «Facebook анонсирует React Fiber, переработку своей среды React» . ТехКранч . 18 апреля 2017 г. Архивировано из оригинала 14 июня 2018 г. Проверено 19 октября 2018 г.
- ^ «GitHub — acdlite/react-fiber-architecture: описание нового основного алгоритма React, React Fiber» . github.com . Архивировано из оригинала 10 мая 2018 г. Проверено 19 октября 2018 г.
- ^ «Реагировать v16.0» . реакция.js. 26 сентября 2017 г. Архивировано из оригинала 3 октября 2017 г. Проверено 20 мая 2019 г.
- ^ url= https://reactjs.org/blog/2020/08/10/react-v17-rc.html. Архивировано 10 августа 2020 г. на Wayback Machine.
- ^ Перейти обратно: а б «Реагировать v18.0» . сайт реакцииjs.org . Архивировано из оригинала 29 марта 2022 г. Проверено 12 апреля 2022 г.
- ^ «Реагировать на CHANGELOG.md» . Гитхаб . Архивировано из оригинала 28 апреля 2020 г. Проверено 9 декабря 2015 г.
- ^ Лю, Остин. «Веская причина не использовать ReactJS» . Середина . Архивировано из оригинала 31 мая 2022 г. Проверено 9 декабря 2015 г.
- ^ «Обновление нашего патентного гранта на открытый исходный код» . Архивировано из оригинала 08.11.2020 . Проверено 9 декабря 2015 г.
- ^ «Дополнительное предоставление патентных прав, версия 2» . Гитхаб . Архивировано из оригинала 31 мая 2022 г. Проверено 9 декабря 2015 г.
- ^ «Ранее задаваемые вопросы по юридическим вопросам ASF» . Фонд программного обеспечения Apache. Архивировано из оригинала 06 февраля 2018 г. Проверено 16 июля 2017 г.
- ^ «Объяснение лицензии React» . Фейсбук . Архивировано из оригинала 06 мая 2021 г. Проверено 18 августа 2017 г.
- ^ «Рассмотрите возможность повторного лицензирования на AL v2.0, как только что сделал RocksDB» . Гитхаб . Архивировано из оригинала 27 июля 2022 г. Проверено 18 августа 2017 г.
- ^ «WordPress откажется от библиотеки React из-за риска, связанного с патентной статьей Facebook» . ТехКранч . 15 сентября 2017 г. Архивировано из оригинала 31 мая 2022 г. Проверено 16 сентября 2017 г.
- ^ «Перелицензирование React, Jest, Flow и Immutable.js» . Код Фейсбука . 23 сентября 2017 г. Архивировано из оригинала 06 декабря 2020 г. Проверено 23 сентября 2017 г.
- ^ Кларк, Эндрю (26 сентября 2017 г.). «React v16.0§MIT с лицензией» . Реагирующий блог . Архивировано из оригинала 3 октября 2017 года . Проверено 18 октября 2017 г.
- ^ Ханзакер, Натан (25 сентября 2017 г.). «Реагировать v15.6.2» . Реагирующий блог . Архивировано из оригинала 31 мая 2022 года . Проверено 18 октября 2017 г.
Библиография
[ редактировать ]- Ларсен, Джон (2021). Хуки React в действии с приостановкой и параллельным режимом . Мэннинг. ISBN 978-1720043997 .
- Шварцмюллер, Макс (01 мая 2018 г.). React — Полное руководство (включая хуки, React Router и Redux) . Пакт Паблишинг .
- Виерух, Робин (2020). Дорога к реагированию . Линпаб. ISBN 978-1720043997 .
- Дере, Мохан (21 декабря 2017 г.). «Как интегрировать create-react-app со всеми библиотеками, необходимыми для создания отличного приложения» . freeCodeCamp . Проверено 14 июня 2018 г.
- Панчал, Крунал (26 апреля 2022 г.). «Подробное сравнение Angular и React» . СайтПоинт . Архивировано из оригинала 30 марта 2023 г. Проверено 5 июня 2023 г.
- Хамори, Фенерек (31 мая 2022 г.). «История React.js на временной шкале» . Восходящий стек . Архивировано из оригинала 31 мая 2022 г. Проверено 5 июня 2023 г.
- Лардинуа, Фредерик. «Facebook анонсирует React Fiber, переработанную версию своей библиотеки React» . Инфомир . Архивировано из оригинала 12 июня 2018 г. Проверено 5 июня 2023 г.