Правильно ли я понимаю идею Redux?

Друзья, привет,

Я активно пересел с Ангуляра на изучение Реакта, и долгое время до этого не понимал зачем вообще нужен Redux. Когда изучил React, появилось несколько идей:

1. В Реакте нет нормального способа шарить данные между любыми компонентами в дереве компонентов, кроме контекста. Нельзя просто взять, создать объект, получить к нему прямой доступ из компонентов (т.е. по сути сделать хранилище данных), и подписаться на изменения данных в этом хранилище. Реакт просто не отреагирует на это, ему нужно изменение состояния, а этого не произойдет. Либо, нужно делать обходные пути по форсированию рендера, что тоже плохо.

2. Это централизованный способ управления состоянием, т.е вместо множественного доступа в хранилище, мы централизуем управление состоянием приложения. Это дает хорошие бонусы, вплоть до хранения состояния приложения в памяти. Круто.

Всё ли правильно?
Опытные Redux-мэны, можете что-нибудь подсказать, что я еще не знаю пока?
  • Вопрос задан
  • 931 просмотр
Пригласить эксперта
Ответы на вопрос 3
Идея Redux изложена в трех пунктах в официальной документации https://redux.js.org/introduction/three-principles :
  • Single source of truth
  • State is read-only
  • Changes are made with pure functions

Кроме этого полезно почитать секцию https://redux.js.org/introduction/prior-art . В ней рассказыается предистория.
Ответ написан
Нельзя просто взять, создать объект, получить к нему прямой доступ из компонентов (т.е. по сути сделать хранилище данных), и подписаться на изменения данных в этом хранилище. Реакт просто не отреагирует на это, ему нужно изменение состояния, а этого не произойдет. Либо, нужно делать обходные пути по форсированию рендера, что тоже плохо.


Так redux это и делает в функции connect. Подписывается на данные и дергает setState для форсирования рендера.
Ответ написан
@VasyaM13221
Ну это примерно то же что и NGXS который вы используете в ангуляре.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
SaveTime Москва
от 160 000 до 230 000 ₽
PaulCamper Берлин
от 2 000 до 3 100 $
ICL Services Казань
от 130 000 до 200 000 ₽