Nuxt3パブリックベータ版時点の情報となります。
  
    このカテゴリーは、Nuxt3パブリックベータ版の情報を公開しています。最新の情報は
    
      Nuxt3の公式サイト
    
    をご確認ください。
  
Nuxt2で自作クラスを登録する方法
Nuxt2では自作クラスをNuxtインスタンスに登録する場合、inject()関数を使用していました。
Nuxt2で自作クラスを追加する方法
// plugins/my-plugin.js
class MyPlugin {
  constructor (context) {
    this.error = context.error
  }
  // 404エラーを返す共通関数
  errorHandler () {
    return this.error({ statusCode: 404, message: 'ページが見つかりません' })
  }
}
export default (context, inject) => {
  inject('my', new MyPlugin(context)
}
Nuxt2で自作クラスを呼び出す方法
// pages/index.vue
this.$my.errorHandler()
Nuxt3に自作クラスを登録する方法
Nuxt3ではprovideを使用し、自作クラスを登録します。
関数内ではuseNuxtApp()やuseRoute()など取得できます。
これにより、Nuxt3の機能をカスタマイズしたオリジナル関数を作成できます。
plugins/my-plugin.ts
export interface MyPluginInterface {
  hoge (): string
}
class MyPlugin implements MyPluginInterface {
  hoge () {
    // この中では、Nuxtインスタンスやルートオブジェクトも取得可能
    console.log(useNuxtApp())
    console.log(useRoute().query)
    return 'hoge'
  }
}
export default defineNuxtPlugin(nuxtApp => {
  return {
    provide: {
      my: new MyPlugin
    }
  }
})
Nuxt3でprovideを呼び出す
自作クラスの呼び出しにはuseNuxtApp()を使用します。
provideに登録したプロパティに$をつけて呼び出すルールとなっています。
また、登録したクラスや関数はどこからでも呼び出し可能です。
pages/index.vue
<script setup lang="ts">
  const { $my } = useNuxtApp()
  console.log($my.hoge())
</script>
console
hoge
        ← Prev
      
  
        Next →
      
      あなたの力になれること
    
 
      私自身が独学でプログラミングを勉強してきたので、一人で学び続ける苦しみは痛いほど分かります。そこで、当時の私がこんなのあったら良いのにな、と思っていたサービスを立ち上げました。周りに質問できる人がいない、答えの調べ方が分からない、ここを聞きたいだけなのにスクールは高額すぎる。そんな方に向けた単発・短期間メンターサービスを行っています。
    
 
      独学プログラマのサービス
    
 
    Nuxt3の投稿
  
 
          1
        
 
            Nuxt3 Betaをブラウザに立ち上げる【Nuxt3 × VSCodeセットアップ】
          
 
          2
        
 
            Nuxt3のsetup内ではthisの代わりにuseNuxtApp()を使用する
          
 
          3
        
 
            Nuxt3でレイアウトファイルを使用するには<NuxtLayout>を使う
          
 
          4
        
 
            Nuxt3で動的ルーティングを生成するには[id].vueを作成する
          
 
          5
        
 
            Nuxt3のmiddlewareの登録と呼び出し&Beta版のバグとその回避策
          
 
          6
        
 
            Nuxt3betaのServerMiddlewareで特定ルートのみ発火させる方法は動かない
          
 
          7
        
 
            importする自作プラグインはserver/apiには置けない
          
 
          8
        
 
            Nuxt3でinjectみたいに自作クラスを登録するにはprovideを使う
          
 
          9
        
 
            Nuxt3のuseFetch()で2回目以降のapiがスルーされる問題 
          
 
          1
        
 
            Nuxt3を使ってShopifyの商品一覧を取得しよう
          
 
          2
        
 
            Nuxt3をNetlifyCLIとnetlify.tomlを使ってNetlifyにデプロイしよう
          
 
          3
        
 
            Nuxt3のserver/apiとuseFetchを使用してShopifyへサーバーAPIリクエストを実装
          
 
          4
        
 
            Nuxt3でShopifyのCheckoutIDが付与されたURLにリダレクト処理を行う
          
 
          5
        
 
            【Nuxt3×Shopify】Piniaを導入した商品取得のベストプラクティス