Загрузка…
Загрузка…
Plugin — объект/функция с методом install(app, options), который расширяет приложение: глобальные компоненты, директивы, provide, прототип/config.
Подключают Vue Router, Pinia, UI-киты, i18n одним app.use(...), чтобы не дублировать setup в каждом файле.
// plugins/toast.js
export default {
install(app, options = {}) {
app.config.globalProperties.$toast = (msg) => {
console.log(options.prefix ?? '', msg)
}
app.provide('toast', app.config.globalProperties.$toast)
},
}
// main.js
import { createApp } from 'vue'
import App from './App.vue'
import toast from './plugins/toast'
createApp(App).use(toast, { prefix: '[app]' }).mount('#app')В Composition API предпочтительнее inject/provide или отдельные модули, чем полагаться только на globalProperties.
Пишите плагин, когда фича реально глобальная. Локальную утилиту достаточно импортировать. app.use идемпотентен по вашей логике — не регистрируйте дважды без нужды.
Плагин — контракт install для расширения app. Стандартный способ подключить экосистему Vue 3.
