Nuxt.jsのmiddleware(ミドルウェア)の基本的な使い方

Vue.js

Nuxt.jsのmiddlewareの基本的な使い方を紹介します。

middlewareとは

pagesやlayoutsのレンダリングの前に実行される実行される関数です。
pagesの前のため、まだrouterの設定もされていない状態で関数が実行されます。
Nuxt.jsでは、middlewareディレクトリが自動的に作成されるので、そこにカスタム関数を定義することができます。

middlewareの使い方

  1. middlewareディレクトリにjsファイルを作成する
  2. そのjsファイルに関数を記述してexportする
  3. コンポーネントに登録する

middlewareディレクトリにjsファイルを作成する

middlewareにたとえば、consoleLog.jsを作成します。
そして、次のように記述します。

export default function (context) {
  console.log('ミドルウェア')
}

関数によってサーバーサイドでもクライアントサイドでも実行できます。

コンポーネントに登録する

pagesの好きなフォルダのindex.vueのscript内に以下のように記述します。

  middleware: 'consoleLog',

そうすると、このmiddlewareを登録したindex.vueが呼び出されるたびに登録したmiddlewareの関数が実行されます。
上の場合、該当のページにページ内でクリックしたりしてアクセスするとブラウザ(
クライアントサイド)のコンソールでメッセージを確認できます。
リロードすると、サーバーサイドでメッセージを確認できます。

layoutsのファイルに登録する

また、layoutsフォルダのファイルにも同様にして登録することができます。
その場合、そのlayoutsが適用されているファイルの数だけ関数が実行されます。

nuxt.config.jsに登録する

また、nuxt.config.jsに登録することも可能です。

  router: {
    middleware: 'consoleLog'
  },

middlewareの具体的な使い方

middlewareを使ってログインしていないユーザーをリダイレクトするには、middlewareを使ってログインしていないユーザーをリダイレクトする方法を参考にしてみてください。

Vue.js

Posted by devsakaso