У меня есть приложение, которое я пишу, которое включает в себя многодокументный интерфейс (например, Excel или VSCode и т. Д.).Для каждого документа, который открывается, есть дерево слева и список того, что выбрано из этого дерева справа.
Дерево и список являются отдельными дочерними компонентами страницы документа, поэтому им необходимо общаться друг с другом.
Мой вопрос вращается вокруг того, выбраны ли узлы дерева и что именно (list) должен храниться в глобальном хранилище vuex, или если между деревом и списком должна быть установлена шина событий, когда что-то проверено.
Как только пользователь закрывает документ, нет необходимостиприложение, чтобы удерживать дерево или список, и каждый документ в приложении не общается друг с другом.Таким образом, это действительно не похоже, что это должно быть в глобальном магазине.Тем не менее, два родственных компонента должны общаться, как минимум, на выбранных узлах дерева.
Чтобы избежать этого поста, я пытаюсь понять, какова "правильная" структура дизайна vue / vuex для этого сценария и, возможно, плюсы / минусы в том, что делать это так или иначе.
- Следует ли использовать магазин vuex?Если да, то должны ли дерево и выбранные узлы находиться в хранилище или только выбранные узлы?
- Следует ли использовать $ emit между одноуровневыми компонентами?
- Должен ли родительский контейнер проходить вСвойство «выбранные узлы», которое будет обновлено компонентом дерева и затем передано тому же свойству в компонент списка?маршрут хранилища Vuex, я должен был бы сохранить все дерево и / или список данных для каждой вкладки в некотором массиве.Учитывая, что деревья могут содержать потенциально более 10 000 элементов, я представляю проблемы, пытаясь поместить их в глобальный магазин?