точки зрения архитектуры?
Вынести функции в отдельный js-файл или запихнуть во vuex?
Как хочешь) если у тебя данные похожие лучше в хранилище
если без vuex и если придерживаться принципов независимых однофайловых компонентов, то еще как вариант reusable функции через миксины
миксины худшее зло
Часто это слышу, но не ясно почему?
не всегда. да, они по дефолту не коммуницируют между собой, и есть шанс случайно продублировать метод в компоненте если руки кривые, но хренова туча пакетов по типу clickaway на миксинах и что?
то что их юзают в либах - не значит, что они норм
> норм reusable логику только в vue 3 завезли, все остальное 🚴♀️ во вью2 есть провайд инжект который справляется с этой задачей
вот это уже конкретный велосипед для вышеобозначенного вопроса
чего это велосипед? официальная рекомендация от команды для разработчиков
как и миксины, собственно
Миксины я рассматривала, но как-то мутно выйдет, имхо. Надо подумать об этом. Источники рекомендуют сделать плагин, мне не нравится эта идея в рамках моей задачи: это был бы очень маленький плагин.
не знаю, я их предлагал в контексте без vuex, так как сам юзаю стор в nuxt
Плагины - это просто унифицированный способ подключать что-то во Vue приложение. Чтобы подключать всё через Vue.use. Если под плагином подразумевается внедрение чего-то в компоненты через прототип - то это, конечно, распространённый вариант внедрения во Vue, но очень неявный и некрасивый... В большинстве случаев хватает простого импорта модуля работы с API, который инкаспулирует функции по работе с API с определённой сущностью
Стор в nuxt это обычный Vuex
Мне нравится этот подход. Я так и делала. Но попадались примеры с заворчиванием во vuex, вот уточнила, вдруг так удобнее.
решил не дублировать в посте дважды
Плагины - просто способ доставить сервисы api в контекст компонентов, не более. Это всё равно должны быть самостоятельные модули, которые должно быть можно использовать и вне контекста компонентов.
Про плагины написано, что они гарантируют однократную установку. А так я глобально импортирую и вешаю на прототип. Удобно потом доступ.
Однократная установка нужна, когда при установке происходит какая-то инициализация с побочными эффектами
С недавнего времени стал использовать VuexORM с плагином VuexORM Axios Просто сказка — работать с моделями, которые сами и являются контейнерами запросов на бэк
Спасибо! почитаю.
Обсуждают сегодня