Redux
Redux — відкрита JS бібліотека призначена для управління станом програм JavaScript[4]. Найчастіше використовується разом з React або Angular для побудови інтерфейсів користувача.
![]() | |
Тип | бібліотека JavaScript |
---|---|
Автор(и) | Ден Абрамов та Ендрю Кларк |
Розробники | Dan Abramovd, Andrew Clarkd, Mark Eriksond, Timothy Dorrd, Benkiraned, Єлизавета II і Пабло Пікассо |
Перший випуск | 2 червня 2015[1] |
Стабільний випуск | 4.0.5 (24 грудня 2019[2]) |
Версії | 4.1.0 (24 квітня 2021)[3] |
Репозиторій | github.com/reduxjs/redux |
Платформа | крос-платформова програма |
Мова програмування | JavaScript |
Стан розробки | Активний |
Ліцензія | MIT |
Вебсайт | redux.js.org |
Історія
Redux був створений Деном Абрамовим і Ендрю Кларком у 2015 році.[1] Redux був створений під впливом Flux, розробленого Facebook, і під впливом функційної мови програмування Elm.[5]
Redux — це контейнер cтанів для застосунків JavaScript. Він допомагає розробникам оптимізувати код програми. Крім того, він забезпечує вдосконалення досвіду розробника, наприклад, редагування живого коду в поєднанні з відладчиком, що працює під час роботи.
Redux можна використовувати разом із React або іншими бібліотеками. Розмір файлу Redux невеликий, 2kB, включаючи залежності.[6]
Основна концепція
Єдине джерело істини
Redux зберігає cтан всього застосунку в дереві об’єктів в одному сховищі. Одне дерево станів полегшує налагодження або перевірку програми; це також дозволяє зберігати стан вашого застосунку в процесі розробки, для прискорення циклу розробки.
Стор (Store) - це об'єкт, який з'єднує екшени, які представляють факт того, що "щось сталося" і редюсери, які оновлюють стан (state) відповідно до цих екшинів разом.
- Стор містить стан додатку (application state);
- надає доступ до стану за допомогою
getState()
- може випускати оновлення стану за допомогою
dispatch(action)
- обробляє скасування реєстрації слухачів за допомогою функції, що повертається
subscribe(listener).
[7]
Стан призначений тільки для читання
Єдиний спосіб змінити стан — це виокремити дію, об’єкт, що описує те, що сталося. Це гарантує, що ні перегляди, ні зворотні виклики мережі ніколи не будуть змінювати стан. Натомість вони виражають тільки намір це зробити. Всі зміни — централізовані і відбуваються одна за іншою у чіткій послідовності. Оскільки дії є простими об’єктами, вони можуть бути зареєстровані, серіалізовані, збережені та пізніше відтворені для налагодження або тестування.
Екшени - це структури, які передають дані з застосування в стан. Вони є єдиними джерелами інформації для стану. Redux відправляє їх їх в стор, використовуючи метод store.dispatch()
.[8]
Зміни за допомогою чистих функцій
Редьюсери (redusers) — це лише чисті функції, які приймають попередній стан і дію тобто state
, і повертають наступний стан. Редюсери визначають, як стан додатки змінюється у відповідь на екшени (action), які відправлені в стан. Екшени тільки описують, що сталося, але не описують, як змінюється стан додатка.[9]
В процесі розробки редьюсери можуть бути розділені на дрібніші редьюсери, які управляють певними частинами дерева станів. Оскільки редьюсери — це лише функції, ви можете контролювати порядок їх надсилання, передавати додаткові дані або навіть створювати повторювані редьюсери для звичайних завдань, таких як розбиття на сторінки.
Примітки
- com/reactjs/redux/releases/tag/v0.2.0 Initial release tag
- com/reactjs/redux/releases Releases — ReactJS/Redux. GitHub.
- Release 4.1.0 — 2021.
- Getting Started with Redux | Redux. redux.js.org (англ.). Процитовано 21 вересня 2020.
- smashingmagazine. com/2016/06/an-introduction-to-redux/ An Introduction To Redux . Smashing Magazine .
- com/reactjs/redux reactjs/redux: Predictable state container for JavaScript apps . GitHub .
- Стор · Redux documentation in russian. rajdee.gitbooks.io. Процитовано 21 вересня 2020.
- Экшены · Redux documentation in russian. rajdee.gitbooks.io. Процитовано 21 вересня 2020.
- Редюсеры · Redux documentation in russian. rajdee.gitbooks.io. Процитовано 21 вересня 2020.