Почему наблюдаем за редуксом вместо просто rx js с store.dispatch? - PullRequest
0 голосов
/ 10 февраля 2020

Я не понимаю, почему мне нужно использовать наблюдаемую избыточность? Разве я не могу просто создать свое собственное промежуточное программное обеспечение для прослушивания и передачи темы о действиях по редукции. А затем создайте конвейеры (вместо эпопей), которые используют store.dispatch() и store.getState()?

1 Ответ

1 голос
/ 11 февраля 2020

Да, вы можете написать свое собственное промежуточное ПО в стиле Redux-Observable.

Кто-то, кого я знаю, должен сделать это, потому что ее компания не приняла Rx JS, но затем она сильно проигрывает из инструментов, которые вы получаете от операторов конвейера Redux и Rx JS.

Хотя делать это самостоятельно не всегда лучший способ. Redux-Observable обрабатывает множество сложных вещей за кулисами. Я написал свой собственный для специфики c scenar ios, где у меня нет Redux, но если у меня есть, я go с Redux-Observable.

Другой способ описать это, вы могли бы создать функцию промежуточного программного обеспечения для каждого epi c или создать отдельное промежуточное программное обеспечение, которое собирает кучу эпопей и создает один родительский конвейер.

Таким же образом вы можете иметь один Редуктор, который объединяет несколько меньших редукторов. combineReducers позволяет вам делать это в иерархии, но каждый редуктор не знает о состоянии других.

combineEpics делает то же самое. Хотя вы можете добавлять их иерархически, технически это не имеет значения. Чтобы было ясно, иерархия имеет значение, если вы передаете combineEpics где-нибудь в вашей кодовой базе. Вероятно, не рекомендуется.

Ваш вопрос также можно перефразировать так: «Почему я должен использовать Redux, если я могу написать свой собственный объект методами getState, dispatch и subscribe? Единственная причина, по которой вы» Напишите свой собственный Redux, если вы находитесь в ситуации, когда вы не хотите использовать редукторы для управления состоянием или у вас есть собственный сценарий, в котором вы хотите поведение, подобное Redux, но на самом деле не Redux библиотеки.

...