0Pricing
Vue Academy · レッスン

プラグイン開発

インストール可能なVueプラグインを作成します。

「プラグイン開発」はCoddyKit上の無料Vue Academyレッスンです。 これはレッスン2/3です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはVue Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Vue Academyコースには全3レッスンが含まれています。

プラグインとは

Vueのプラグインは、グローバルコンポーネント、ディレクティブ、プロパティ、サードパーティ連携など、アプリ全体の機能を1回の呼び出しでインストールできるようにまとめたものです。Vue RouterやPiniaのようなライブラリは、プラグインとしてアプリに組み込みます。

install関数

プラグインはinstallメソッドを持つオブジェクトです(単なる関数でも構いません)。Vueはアプリインスタンスと、渡された任意のオプションを使ってこれを呼び出します。

export const myPlugin = {
  install(app, options) {
    // set up global features here
  }
}

プラグインのインストール

app.useでプラグインを登録し、必要に応じてオプションオブジェクトを渡します。Vueはinstall関数を1回実行します。

import { createApp } from "vue"
import { myPlugin } from "./myPlugin"

const app = createApp(App)
app.use(myPlugin, { greeting: "Hi" })

グローバルコンポーネントの登録

installの内部でコンポーネントをグローバルに登録すると、アプリのどの部分からでもインポートせずに使用できます。

import BaseButton from "./BaseButton.vue"

export const uiKit = {
  install(app) {
    app.component("BaseButton", BaseButton)
  }
}

グローバルディレクティブの登録

プラグインでは、ディレクティブをグローバルに登録することもできます。関連するDOM操作を、1つのインストール可能なパッケージにまとめられます。

export const focusPlugin = {
  install(app) {
    app.directive("focus", {
      mounted(el) { el.focus() }
    })
  }
}

グローバルプロパティの提供

app.config.globalPropertiesを使うと、すべてのコンポーネントインスタンスから利用できるプロパティを追加できます。フォーマッターやHTTPクライアントなどのユーティリティに便利です。

export const apiPlugin = {
  install(app, options) {
    app.config.globalProperties.$api = options.client
  }
}

// in any component: this.$api.get("/users")

Composition APIでprovideを使用する

Composition APIとの親和性を高めるには、プラグイン内で app.provide を使用すると、コンポーネントから setup 内で値を inject できます。

export const themePlugin = {
  install(app, options) {
    app.provide("theme", options.theme)
  }
}

// in setup: const theme = inject("theme")

オプションの受け渡し

options 引数を使うと、ユーザーがプラグインを設定できます。動作をカスタマイズするには、install の中で読み取ります。

export const greeter = {
  install(app, options = {}) {
    const word = options.greeting || "Hello"
    app.config.globalProperties.$greet = (name) => word + ", " + name
  }
}

関数プラグイン

プラグインは、install を持つオブジェクトではなく単なる関数にすることもできます。この場合、Vueはその関数自体をインストーラーとして扱います。

export function simplePlugin(app, options) {
  app.config.globalProperties.$version = "1.0.0"
}

app.use(simplePlugin)

完全なプラグインの例

実際のプラグインでは、1つの install 関数でコンポーネント、ディレクティブ、グローバルプロパティを登録するなど、これらの機能をいくつか組み合わせることがよくあります。

export const toolkit = {
  install(app, options) {
    app.component("BaseButton", BaseButton)
    app.directive("focus", focusDirective)
    app.config.globalProperties.$format = options.formatter
  }
}

プラグインを作成するタイミング

UIキット、HTTPレイヤー、i18n、アナリティクスなど、本当にアプリ全体で使う機能にはプラグインを使用します。1つの機能に限定されたロジックには、通常、より軽量なコンポーザブルのほうが適しています。

理解度チェック

プラグインについての知識を確認しましょう。

まとめ

プラグインは install(app, options) 関数を公開し、app.use で登録します。install の中では、グローバルコンポーネントやディレクティブを登録したり、config.globalProperties でグローバルプロパティを追加したり、値を provide して注入できるようにしたりできます。アプリ全体で使う機能にはプラグインを、ローカルなロジックにはコンポーザブルを使用します。次は、拡張しやすいプロジェクトの構成方法を学びます。

よくある質問

「プラグイン開発」レッスンは無料ですか?

はい。「プラグイン開発」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Vue Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Vue Academyコースには全3レッスンが含まれています。

「プラグイン開発」で何を学びますか?

インストール可能なVueプラグインを作成します。 ブラウザで直接実行するハンズオンコードでVue Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Vue Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのVue Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/3です。

「プラグイン開発」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このVue Academyレッスンでコードを書いて実行できますか?

はい。すべてのVue Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. ミックスインとカスタムディレクティブ
  2. プラグイン開発
  3. スケーラブルなフォルダ構成
← Vue Academyに戻る