0Pricing
Frontend Academy · Pelajaran

Sistem Plugin: app.use()

Buat plugin Vue sebagai objek dengan method install, daftarkan komponen dan direktif global, serta sediakan nilai untuk seluruh aplikasi.

Sistem Plugin: app.use() adalah pelajaran Frontend Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Frontend Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Frontend Academy mencakup 4 pelajaran total.

Apa Itu Plugin Vue?

Plugin adalah fungsionalitas yang dapat digunakan kembali dan dipasang ke app Vue: komponen global, directive, nilai yang disediakan, serta pembantu bergaya prototipe (router, i18n, pinia). Plugin adalah cara pustaka berintegrasi dengan Vue.

Bentuk Plugin

Plugin adalah objek dengan metode install(app, options)—atau fungsi yang bertindak sebagai metode install.

// MyPlugin.ts
export default {
  install(app, options) {
    // Configure things here
  }
};

Memasang Plugin

Panggil app.use(plugin, options) pada instance app 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');

Kasus Penggunaan Plugin: Komponen Global

Daftarkan banyak komponen kecil secara global agar konsumen tidak perlu mengimpor satu per satu.

// 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);

Kasus Penggunaan Plugin: Directive Global

Daftarkan directive khusus sekali agar tersedia di seluruh app.

export default {
  install(app) {
    app.directive('focus', { mounted: (el) => el.focus() });
    app.directive('click-outside', clickOutsideDirective);
  }
};

Kasus Penggunaan Plugin: provide()

Sediakan nilai untuk seluruh app yang dapat diambil oleh komponen mana pun—umum digunakan untuk klien API dan konfigurasi.

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)!;

Plugin Nyata: Pinia, Vue Router, i18n

Pustaka utama dalam ekosistem Vue merupakan plugin.

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({ /* ... */ }));

Opsi Plugin

Plugin menerima opsi untuk mengonfigurasi perilakunya saat pemasangan.

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');
}

Augmentasi TypeScript

Untuk globalProperties atau pembantu injeksi, perluas tipe Vue agar konsumen mendapatkan pelengkapan otomatis.

// types.d.ts
declare module '@vue/runtime-core' {
  interface ComponentCustomProperties {
    $api: ApiClient;
  }
}

// In plugin:
install(app) {
  app.config.globalProperties.$api = new ApiClient();
}

globalProperties — Pola Lama

app.config.globalProperties.$foo mengekspos nilai sebagai this.$foo dalam komponen Options API dan template. Composition API lebih menyarankan inject().

Pemasangan Idempoten

Jangan menyebabkan kerusakan jika dipasang dua kali—periksa sebuah penanda atau gunakan kunci provide berbasis Symbol yang secara alami menghindari duplikasi.

Menulis Plugin Sendiri

Jika beberapa app menggunakan kembali konfigurasi (pembungkus autentikasi, penyiapan telemetri, token desain), kemas semuanya sebagai plugin. Menerbitkannya ke npm dengan tanda tangan install(app, options) yang rapi adalah cara idiomatis Vue untuk mengirimkan fungsionalitas yang dapat digunakan kembali.

Pemeriksaan Singkat

Metode apa yang Anda panggil pada instance app Vue untuk memasang plugin?

Ringkasan: Plugin Vue

Plugin = objek dengan install(app, options). Pasang melalui app.use(plugin, options). Gunakan untuk mendaftarkan komponen global, directive, menyediakan nilai, dan mengonfigurasi pustaka. Pinia, Vue Router, dan i18n semuanya merupakan plugin. Perluas ComponentCustomProperties untuk properti berprefiks $. Pastikan install bersifat idempoten.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Sistem Plugin: app.use()” gratis?

Ya — teks lengkap “Sistem Plugin: app.use()” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Frontend Academy, upgrade ke CoddyKit PRO. Kursus Frontend Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Sistem Plugin: app.use()”?

Buat plugin Vue sebagai objek dengan method install, daftarkan komponen dan direktif global, serta sediakan nilai untuk seluruh aplikasi. Kamu berlatih Frontend Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Frontend Academy?

Tidak diperlukan pengalaman sebelumnya. Frontend Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “Sistem Plugin: app.use()” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Frontend Academy ini?

Ya. Setiap pelajaran Frontend Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. provide() dan inject() untuk Injeksi Dependensi
  2. Komponen Asinkron dan Suspense
  3. Direktif Khusus
  4. Sistem Plugin: app.use()
← Kembali ke Frontend Academy