Redux

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

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

Історія

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

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

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

Основна концепція

Єдине джерело істини

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

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

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

Стан призначений тільки для читання

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

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

Зміни за допомогою чистих функцій

Редьюсери (redusers) — це лише чисті функції, які приймають попередній стан і дію тобто 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 (англ.). Процитовано 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. Процитовано 21 вересня 2020.
  7. Экшены · Redux documentation in russian. rajdee.gitbooks.io. Процитовано 21 вересня 2020.
  8. Редюсеры · Redux documentation in russian. rajdee.gitbooks.io. Процитовано 21 вересня 2020.