что нехватает знания о лучших решениях по разработке на vue3.
А именно:
Мне удобно дробить большой код компонента на подкомпоненты с единственным применением - вроде это считается не хорошо, но мне удобно😎
Мне нравится выносить как можно больше логики в стор (vuex getters и actions) в идеальном мире внутри компонентов я вижу только геттеры и доступ к точным, понятным actions.
Но это раздувает код стора, а работа с модулями мне не нравится:
getters['modulename/gettername']
Так себе запись...
В общем понимаю, что не качественно строю архитектуру приложений, но каких-то прозрачных понятных примеров найти быстро не смог.
Пытался изучать код примеров/приложений/плагинов, но обилие var создаёт недоверие к адекватности текста.
Итого: где можно кратко, со множеством примеров и объяснением почему так, а не иначе, найти как спроектировать архитектуру? 🤔
Если кратко - переписывайте все без стора
Зато правда
Вы задайте себе вопрос, зачем мне хранить логику в глобальном сторе, которая фактически дергается в одном компоненте
Исходя из личного опыта могу сказать, что если компонент всегда работает с данными одним образом и только от получает эти данные, то логику получения и взаимодействия можно держать в компоненте. Если же несколько компонентов используют одни и те же данные, то тогда так не получится. Держать логику в сторе - не слишком хорошая идея, если логика касается работы компонента с данными, а не работы с данными самой по себе.
Коллеги, благодарю за обратную связь. На все ответы разом не ответить, но учитывая общность замечаний, поясню: В сторе логика только та, которая получает/отдает данные по АПИ, и которая берёт нужное через геттеры Вот геттеры могу на один компонент написать - мне н нравится, когда разносится логика: половина в сторе, половина в компоненте🤔 Ну, когда что-то править надо, начинаешь вспоминать: а какого типа эта логика и где она к меня лежит?.. Но когда у меня более 10 ендпоинтов то actions, работающие с получением/отправкой, данных разрослись уже на энциклопедию 😂😂😂
Ну вот мне кажется, что можно импортировать один общий геттер и уже в компоненте создавать геттеры для самого компонента.
Возьмите vue-query, станет легче.
В таком случае ваша стора будет содержать getters, которые напрямую относятся к получению данных и станут ненужными. Вы тогда напрямую сможете mapState делать и уже в компонетах делать getter.
Геттеры, которые не обрабатывают данные я не применяю 😎 Но в целом лично испытываю трудности с выносом геттеров в компонент, потому, как писал выше, забываю, где искать исходные данные😂😂😂 Потому и интересно, как правильно (рекомендовано) и почему именно так.
Есть два основных варианта. 1) Вы получаете данные внутри компонента 2) Вы получаете данные в родительском компоненте и передаёте через props.
Тут вопрос, если и родитель берет данные из стора и компонент может брать данные из стора, то как лучше? С одной стороны удобно, что вся логика, связанная с приложением, в одном месте. Например у родителя: Он получает данные и распихивает их по дереву компонентов. С другой стороны, удобно, когда компетентны живут каждый свой жизнью и не от кого не зависят 🤔
Если компонент получает данные в один способ, то можно попросту делать обращение к API слою в самом компоненте и при этом Vuex не нужен.
Наличие сторы !== везде данные из сторы получать только через стору
ну вот пинья о простых вещах и микросторах
Вот я примерно так и понял. Но точно так же можно и на вуексе писать. Правда, может выйти не удобно - это вот да
Обсуждают сегодня