Прогрессивная выборка или все сразу Master Detail - PullRequest
0 голосов
/ 01 октября 2019

Я делаю приложение "мастер-деталь-деталь" в React и GraphQL. Позвольте мне объяснить, есть боковая панель, которая показывает продукты, а затем, когда вы нажимаете один из списка продуктов, в главном окне отображается ДРУГОЙ список (Основная деталь). Вот кикер, если вы нажмете один из продуктов в главном окне, ДРУГОЙ раздел на правой боковой панели заполняется деталями. Вот так:

Основной список -> Подробный список -> Свойства деталей

У меня настроен React Router, и мне интересно, каков правильный способ получения? Есть много идей по этому поводу. Например, я должен структурировать вызов и данные для GraphQL, чтобы просто получить ВСЕ onLoad? т. е. родители (продукты), дети (список продуктов) и детали (сведения о детях. Просто загрузите все и setState?

ИЛИ, это правильный способ сделать что-то с помощью GraphQL, чтобы загружать ТОЛЬКО список продуктов, когдаприложение загружается, и когда пользователь нажимает на продукт, ТОГДА выбирает список детей, и когда они щелкают по дочернему продукту, ТОГДА выбирают детали.

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

GraphQL решает ситуацию с перегрузкой .... но я должен разделить выборку накогда пользователь нажимает и постепенно извлекает ... или извлекает все сразу и просто нажимает -> map () для результатов.

Мне любопытно услышать, как все это принимают.

1 Ответ

0 голосов
/ 02 октября 2019

Ответ здесь состоит в том, чтобы не получать все дерево JSON сразу. Это было бы огромным превышением. Мы можем создать отдельные коллекции в MongoDB для родительских элементов и дочерних элементов в отношении «один ко многим», а затем использовать GraphQL для получения именно того, что нам нужно в каждом окне onClick / onChange. Это кажется наиболее эффективным и целесообразным способом, поскольку я имею дело с более чем 10 панелями данных и около 50 компонентами. Это очень сложное приложение, над которым я работаю.

...