архитектуру? есть vuex хранилище и миксин для выноса одинаковых операций из крудов. я прочитал что action в vuex служит для вызова мутаций, если каждое выносить в мутацию, будет много кода. Какие бы вещи вы вынесли в миксин, и как организовали бы в сторадже экшены и мутации? Зврвнее спасибо за советы!
как делаю в админках 1) стараюсь не использовать миксины 2) actions обычно являются асинхронными, делают запросы к API, вызывают мутации
слышал такое мнение про миксины, но я так понимаю это как трейты на бэке, поидее они свою функцию выполняют, почемуму это видимо считается дурной практикой, хотя можно сильно упростить админку с помощью них. Метод на скрине вы бы где реализовывали?
как отдельный компонент?
это метод который нужен в разных компонентах, поэтому я воот предположил что это в сторадже или имксине должно быть
почему не вынести загрузку файлов в отдельный нормальный компонент?
Миксины считаются плохими из-за их неявности, не видно, что откуда и как берётся, потенциальных конфликтов имён и большого риска сделать запутанный код. Часто можно обойтись без них. Но то, что на скрине, не может быть связано с миксинами. Миксины - это переиспользуемый кусок описания компонента, а на скрине стор. Хотя почему-то на скрине идёт обращение к this к экшине, которого нет. То, что на скрине, можно улучшить как минимум, вынеся всю работу с API в отдельные модули, чтобы стор не занимался работой с HTTP API, а занимался только управлением глобального состояния. Если в админке есть много мест с одинаковой работой с API / стором, например, одинаковый CRUD для разных сущностей, можно делать фабрики, которые делают эти модули
у меня лично есть ImageUploader.vue со слотом, где я могу любую кнопку поставить а он уже загрузит файл, проверит все ошибки и .тд.
> API в отдельные модули, чтобы стор не занимался работой с HTTP API, а занимался только управлением глобального состояния. но модули будет стор же сам вызывать, верно?
Да, если он вообще используется
А фарбики можно сделать банально как функцию которая возвращает например стор модуль с необхдимыми геттерами, екшеными и стейтом?
про модули вы упомянули вы имеете ввиду это https://next.vuex.vuejs.org/guide/modules.html?
Модули в широком смысле. И ES модули, и модули стора
Обсуждают сегодня