Должна ли эта логика быть размещена в магазине Vuex? У меня проблемы с выяснением, когда что-то должно быть в магазине или в состоянии локального компонента

Спасибо пользователю phew за помощь / идеи.

Я пропустил очевидные инструкции командной строки на сайте Xerial для программы Sample. Чтобы запустить программу из командной строки, мне пришлось скопировать файл JAR в ту же папку, что и программа .java. Затем запустите следующую команду:

java -classpath ".: Sqlite-jdbc- (VERSION) .jar" Пример

2
задан Bobimaru 17 January 2019 в 03:15
поделиться

1 ответ

TLDR: использовать локальное состояние.

Предшественник: Это решение всегда может быть непростым. Прежде чем пытаться ответить на этот вопрос, подумайте об интерфейсе пользователя как о функции состояния, т.е. UI = F(state). Так построен Элм. Это означает, что некоторые данные X должны быть частью вашего центрального хранилища (Vuex / Redux), когда они определяют текущее представление / пользовательский интерфейс вашего общего приложения, а сами данные могут стоять самостоятельно. [1111 ]

Решение: В этом случае подумайте о markers. Должны ли данные markers действительно существовать сами по себе? Есть ли какой-либо компонент пользовательского интерфейса (помимо трех рассматриваемых компонентов) всего вашего приложения, который может самостоятельно использовать маркер? Являются ли данные markers полными сами по себе? Вероятно, да или нет. Если вы думаете скорее как да , то вы можете поместить его в Vuex, в противном случае используйте состояние локального компонента.

Чтобы быть более конкретным, markers вместе с тремя функциями составляют более сплоченную единицу. Таким образом, вместо того, чтобы выставлять маркеры как данные, предоставьте три функции, скрывающие маркеры. Есть два способа сделать это. Во-первых, создайте один компонент Vue без UI (упрощенный Vuex), который имеет три функции.

Или, как второй подход, Vue.js предоставил лучшее решение именно для этого типа проблемы - Внедрение зависимостей С помощью внедрения зависимостей вы можете разрешить детям получать доступ к данным компонента-предка, который является именно тем, что вы нужно в этом случае. Конечно, у него есть свои плюсы и минусы, но это тема другого дня.

Примечание: Альтернативно, вы также можете думать, что эти три компонента GmapMap, GmapMarker и их родитель всегда будут существовать вместе. GmapMarker само по себе не имеет смысла без GmapMap, поэтому лучше сохранять это состояние локально. Затем вы можете создать отдельный повторно используемый модуль из этих компонентов, опубликовать его в NPM и использовать его в других приложениях.

0
ответ дан Harshal Patil 17 January 2019 в 03:15
поделиться