プラグイン開発
インストール可能な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フィードバックを取得できます。ローカル設定は不要です。