こんにちは!kossyです!
さて、今回はVue.js 3 系で globalProperties を使ってグローバルなプロパティを定義する方法について、
ブログに残してみたいと思います。
環境
vue/cli 4.5.9
vue 3.0.4
node 14.15.0
npm 6.14.8
方法
Vue.js 3系では、従来の「Vue.prototype」の代わりに、config.globalPropertiesを使ってVueインスタンスにプロパティを追加できます。
以下は簡単な例です。
// src/plugins/sample-plugin.ts import { App } from 'vue' export const samplePlugin = { install: (app: App) => { const isSample = true; app.config.globalProperties.$isSample = isSample app.provide('$isSample', isSample) } }
samplePlugin関数をmain.tsでimportし、use関数の引数に渡します。
// import { samplePlugin } from '@/plugins/sample-plugin' const app = createApp(App) app.use(samplePlugin)
samplePlugin関数の中身の処理は、isSampleという値をapp.config.globalProperties.$isSampleに代入し、provideメソッドを用いてグローバルプロパティとして外部から呼び出せるようにしています。
そしてuse関数を用いてsamplePluginを読み込むようにしています。
呼び出す際には、injectメソッドを用います。
const isSample = inject<boolean>('$isSample')
injectメソッドにグローバルプロパティ名を渡すことで、外部から使うことが可能になります。
勉強になりました。