System wtyczek: app.use()
Utworzy Pan/Pani wtyczkę Vue jako obiekt z metodą install, zarejestruje globalne komponenty i dyrektywy oraz udostępni wartości całej aplikacji.
System wtyczek: app.use() to bezpłatna lekcja Frontend Academy na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Frontend Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Frontend Academy zawiera 4 lekcji w sumie.
Czym jest wtyczka Vue?
Wtyczka to wielokrotnie używana funkcjonalność instalowana w aplikacji Vue: komponenty globalne, dyrektywy, udostępniane wartości, pomocnicze funkcje w stylu prototypu (router, i18n, pinia). Wtyczki umożliwiają bibliotekom integrację z Vue.
Struktura wtyczki
Wtyczka to obiekt z metodą install(app, options) — albo funkcja pełniąca rolę metody instalacji.
// MyPlugin.ts
export default {
install(app, options) {
// Configure things here
}
};Instalowanie wtyczki
Należy wywołać app.use(plugin, options) na instancji aplikacji Vue.
import { createApp } from 'vue';
import App from './App.vue';
import MyPlugin from './plugins/MyPlugin';
const app = createApp(App);
app.use(MyPlugin, { theme: 'dark' });
app.mount('#app');Przypadek użycia wtyczki: komponenty globalne
Wiele małych komponentów można zarejestrować globalnie, aby odbiorcy nie musieli importować każdego z nich.
// plugins/iconPack.ts
import IconChevron from './IconChevron.vue';
import IconClose from './IconClose.vue';
import IconUser from './IconUser.vue';
export default {
install(app) {
app.component('IconChevron', IconChevron);
app.component('IconClose', IconClose);
app.component('IconUser', IconUser);
}
};
// main.ts
app.use(iconPack);Przypadek użycia wtyczki: dyrektywy globalne
Własne dyrektywy można zarejestrować raz, aby były dostępne w całej aplikacji.
export default {
install(app) {
app.directive('focus', { mounted: (el) => el.focus() });
app.directive('click-outside', clickOutsideDirective);
}
};Przypadek użycia wtyczki: provide()
Należy udostępniać wartości w całej aplikacji, aby każdy komponent mógł je wstrzyknąć — jest to częste w przypadku klientów API i konfiguracji.
import type { InjectionKey } from 'vue';
import { ApiClient } from './ApiClient';
export const ApiKey: InjectionKey<ApiClient> = Symbol('api');
export default {
install(app, { baseURL }) {
const api = new ApiClient({ baseURL });
app.provide(ApiKey, api);
}
};
// Anywhere:
const api = inject(ApiKey)!;Rzeczywiste wtyczki: Pinia, Vue Router, i18n
Najważniejsze biblioteki ekosystemu Vue są wtyczkami.
import { createPinia } from 'pinia';
import router from './router';
import { createI18n } from 'vue-i18n';
const app = createApp(App);
app.use(createPinia());
app.use(router);
app.use(createI18n({ /* ... */ }));Opcje wtyczki
Wtyczki przyjmują opcje służące do konfigurowania ich zachowania podczas instalacji.
app.use(MyPlugin, {
apiUrl: 'https://api.example.com',
enableLogs: true,
theme: 'dark'
});
// Inside the plugin:
install(app, options) {
if (options.enableLogs) console.log('plugin installed');
}Rozszerzanie typów TypeScript
W przypadku globalProperties lub pomocniczych funkcji wstrzykiwania należy rozszerzyć typy Vue, aby odbiorcy otrzymywali autouzupełnianie.
// types.d.ts
declare module '@vue/runtime-core' {
interface ComponentCustomProperties {
$api: ApiClient;
}
}
// In plugin:
install(app) {
app.config.globalProperties.$api = new ApiClient();
}globalProperties — starszy wzorzec
app.config.globalProperties.$foo udostępnia wartość jako this.$foo w komponentach i szablonach korzystających z Options API. Composition API preferuje inject().
Idempotentna instalacja
Nie należy powodować awarii przy dwukrotnej instalacji — proszę sprawdzić flagę lub użyć kluczy provide opartych na Symbol, które naturalnie eliminują duplikaty.
Pisanie własnej wtyczki
Jeśli wiele aplikacji współdzieli konfigurację (opakowanie uwierzytelniania, konfigurację telemetrii, tokeny projektowe), należy zapakować ją jako wtyczkę. Publikowanie jej w npm z przejrzystą sygnaturą install(app, options) to idiomatyczny dla Vue sposób dostarczania wielokrotnie używanej funkcjonalności.
Szybkie sprawdzenie
Jaką metodę należy wywołać na instancji aplikacji Vue, aby zainstalować wtyczkę?
Podsumowanie: wtyczki Vue
Wtyczka = obiekt z metodą install(app, options). Instalowanie odbywa się za pomocą app.use(plugin, options). Wtyczki służą do rejestrowania globalnych komponentów i dyrektyw, udostępniania wartości oraz konfigurowania bibliotek. Pinia, Vue Router i i18n są wtyczkami. Należy rozszerzyć ComponentCustomProperties dla właściwości z prefiksem $. Instalacja powinna być idempotentna.
Często zadawane pytania
Czy lekcja „System wtyczek: app.use()” jest bezpłatna?
Tak — pełny tekst „System wtyczek: app.use()” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Frontend Academy, przejdź na CoddyKit PRO. Kurs Frontend Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „System wtyczek: app.use()”?
Utworzy Pan/Pani wtyczkę Vue jako obiekt z metodą install, zarejestruje globalne komponenty i dyrektywy oraz udostępni wartości całej aplikacji. Ćwiczysz Frontend Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Frontend Academy?
Nie wymagamy żadnego doświadczenia. Frontend Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.
Ile czasu zajmuje lekcja „System wtyczek: app.use()”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Frontend Academy?
Tak. Każda lekcja Frontend Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- provide() i inject() do wstrzykiwania zależności
- Komponenty asynchroniczne i Suspense
- Własne dyrektywy
- System wtyczek: app.use()