Redux: Несколько рассылок против одной на одной странице? - PullRequest
0 голосов
/ 19 марта 2019

Мой вопрос - скорее вопрос архитектуры.В моем проекте, когда пользователь входит в систему, он попадает на домашнюю страницу с несколькими «виджетами».Каждый виджет требует какого-то вызова API.Пять из них идут к моему собственному API, а один - к стороннему API.

У меня есть состояние загрузки в моем редукторе и метод рендеринга каждого компонента.Домашняя страница является родительским компонентом, а каждый виджет - дочерним компонентом.

Лучше ли извлечь все данные, которые мне нужны, в родительском компоненте, а затем передать эти данные в каждый дочерний компонент?Или лучше разделить все это так, чтобы каждый дочерний компонент отправлял свои собственные действия и обрабатывал свои собственные данные?

Первый вариант - это один большой удар по моей базе данных, который включает всю необходимую мне информацию,второй вариант - несколько меньших попаданий в мою базу данных (хотя разница во времени мне кажется незначительной).

Примечание: изначально я пошел по пути первого варианта, однако у меня возникли проблемы с ошибкой приложения, поскольку большая часть моих данных имеет глубину вложенности 4+ уровня.Я не уверен, означает ли это, что мне нужно использовать такую ​​библиотеку, как Normalizr, или это просто мое невежество и общее отсутствие знаний о Redux?

1 Ответ

0 голосов
/ 19 марта 2019

Первоначально я пошел по пути первого варианта, однако у меня возникли проблемы с ошибкой приложения, потому что большая часть моих данных имеет глубину 4+ уровня.

Эта конкретная проблема может быть решена на стороне сервера. Вы всегда должны стремиться к тому, чтобы ваши данные были максимально плоскими. Извлеките данные из своей собственной БД или какой-либо третьей стороны, измените их так, чтобы клиент мог их легко прочитать, и отправьте обратно клиенту.

Лучше ли получить все данные, которые мне нужны, в родительском? компонент, а затем передать эти данные в каждый дочерний компонент? Или же лучше разделить все так, чтобы каждый дочерний компонент отправляет свои собственные действия и обрабатывает свои собственные данные?

Я бы сказал, что это зависит. Вы можете попытаться получить столько материала, сколько вам нужно при начальной загрузке, без снижения производительности. Ничего плохого в компонентах, которые принимают данные от родительского компонента.

...