Redux

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
Redux
Тип бібліотека JavaScript
Автор Ден Абрамов та Ендрю Кларк
Розробники Dan Abramovd, Andrew Clarkd, Mark Eriksond і Timothy Dorrd
Перший випуск 2 червня 2015; 8 років тому (2015-06-02)[1]
Стабільний випуск 4.0.5 (24 грудня 2019; 4 роки тому (2019-12-24)[2])
Платформа крос-платформова програма
Операційна система кросплатформова програма
Мова програмування JavaScript
Стан розробки Активний
Ліцензія MIT
Репозиторій github.com/reduxjs/redux
Вебсайт redux.js.org

Redux — відкрита JavaScript бібліотека призначена для керування станом програм JavaScript[3]. Найчастіше використовується разом з React або Angular для побудови інтерфейсів користувача.

Історія[ред. | ред. код]

Redux був створений Деном Абрамовим і Ендрю Кларком у 2015 році.[1] Redux був створений під впливом Flux, розробленого Facebook, і під впливом функційної мови програмування Elm.[4]

Redux — це контейнер станів для застосунків JavaScript. Він допомагає розробникам оптимізувати код програми. Крім того, він забезпечує вдосконалення досвіду розробника, наприклад, редагування живого коду в поєднанні з відладчиком, що працює під час роботи.

Redux можна використовувати разом із React або іншими бібліотеками. Розмір файлу Redux невеликий, 2kB, включаючи залежності.[5]

Основна концепція[ред. | ред. код]

Єдине джерело істини[ред. | ред. код]

Redux зберігає стан всього застосунку в дереві об'єктів в одному сховищі. Одне дерево станів полегшує налагодження або перевірку програми; це також дозволяє зберігати стан вашого застосунку в процесі розробки, для прискорення циклу розробки.

Стор (Store) — це об'єкт, який з'єднує екшени, які представляють факт того, що «щось сталося» і редюсери, які оновлюють стан (state) відповідно до цих екшинів разом.

  • Стор містить стан додатку (application state);
  • надає доступ до стану за допомогою getState()
  • може випускати оновлення стану за допомогою dispatch(action)
  • обробляє скасування реєстрації слухачів за допомогою функції, що повертається subscribe(listener).[6]

Стан призначений тільки для читання[ред. | ред. код]

Єдиний спосіб змінити стан — це виокремити дію, об'єкт, що описує те, що сталося. Це гарантує, що ні перегляди, ні зворотні виклики мережі ніколи не будуть змінювати стан. Натомість вони виражають тільки намір це зробити. Всі зміни — централізовані і відбуваються одна за іншою у чіткій послідовності. Оскільки дії є простими об'єктами, вони можуть бути зареєстровані, серіалізовані, збережені та пізніше відтворені для налагодження або тестування.

Екшени — це структури, які передають дані з застосування в стан. Вони є єдиними джерелами інформації для стану. Redux відправляє їх у стор, використовуючи метод store.dispatch().[7]

Зміни за допомогою чистих функцій[ред. | ред. код]

Редьюсери (reducers) — це лише чисті функції, які приймають попередній стан і дію тобто state, і повертають наступний стан. Редюсери визначають, як стан додатки змінюється у відповідь на екшени (action), які відправлені в стан. Екшени тільки описують, що сталося, але не описують, як змінюється стан додатка.[8]

В процесі розробки редьюсери можуть бути розділені на дрібніші редьюсери, які керують певними частинами дерева станів. Оскільки редьюсери — це лише функції, ви можете контролювати порядок їх надсилання, передавати додаткові дані або навіть створювати повторювані редьюсери для звичайних завдань, таких як розбиття на сторінки.

Примітки[ред. | ред. код]

  1. а б com/reactjs/redux/releases/tag/v0.2.0 Initial release tag[недоступне посилання]
  2. com/reactjs/redux/releases Releases — ReactJS/Redux. GitHub.
  3. Getting Started with Redux | Redux. redux.js.org (англ.). Архів оригіналу за 20 вересня 2020. Процитовано 21 вересня 2020.
  4. smashingmagazine. com/2016/06/an-introduction-to-redux/ An Introduction To Redux. Smashing Magazine.
  5. com/reactjs/redux reactjs/redux: Predictable state container for JavaScript apps. GitHub.
  6. Стор · Redux documentation in russian. rajdee.gitbooks.io. Архів оригіналу за 1 квітня 2022. Процитовано 21 вересня 2020.
  7. Экшены · Redux documentation in russian. rajdee.gitbooks.io. Архів оригіналу за 1 квітня 2022. Процитовано 21 вересня 2020.
  8. Редюсеры · Redux documentation in russian. rajdee.gitbooks.io. Архів оригіналу за 1 квітня 2022. Процитовано 21 вересня 2020.