Задать вопрос

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

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

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

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

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

Всё ли правильно?
Опытные Redux-мэны, можете что-нибудь подсказать, что я еще не знаю пока?
  • Вопрос задан
  • 972 просмотра
Подписаться 6 Средний 4 комментария
Пригласить эксперта
Ответы на вопрос 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 который вы используете в ангуляре.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
18 дек. 2024, в 12:39
1000 руб./за проект
18 дек. 2024, в 12:37
10000 руб./за проект
18 дек. 2024, в 12:22
5000 руб./за проект