Nuxt.jsの「layouts」を使用してレイアウトの共通化を行う方法|Nuxt.jsの基本

Nuxt.jsにはぺーじごとにレイアウトを切り替える機能があります。
元から存在するのは「layouts/default.vue」だけですが、「layouts」フォルダ内にレイアウト用のファイルを作成し、「pages」配下の各ページファイルからレイアウトを指定して使います。
この機能をうまく使うことで、複数ページで共通使用するレイアウトをまとめて管理できます。
レイアウトの作成
default.vue
まずデフォルトで設定されている「layouts/default.vue」の中身は下記のようになっています。
<template>
<div>
<Nuxt />
</div>
</template>この<Nuxt />タグの中にpages配下のコードが入ります。
これをコピーして、レイアウト共有の処理やコードを追加していきます。
基本的にはpagesと同じようにNuxt.jsの処理も普通に書けます。
レイアウトの適用方法
レイアウトを適用したいときは、「pages」配下のファイルのexport default直下のlayoutでファイル名を指定します。
例えば「layouts/list.vue」を適用したい場合は「layout: 'list'」と指定します。
<script>
export default {
layout: 'list', // ← 「list.vue」が適用される
data() {
return {
}
},
methods: {
}
}
</script>error.vue
「layouts/error.vue」を作成すると、全ページ共通のエラーページを設定できます。
このエラーページではデフォルトで「error」propsが渡されて、その中に「statusCode」というHTTPステータスコードを表す値(404や500など)を持っています。
この値を使えば、どのステータスコードなのかによってメッセージを切り替えたりもできます。
<template>
<div class="page is-error">
<h1>{{ error.statusCode }}</h1>
<h2>エラーが発生しました</h2>
</div>
</template>
<script>
export default {
props: {
error: { type: Object, default () { return {} } }
}
}
</script>

npm install時に「cb() never called!」とエラーが表示されたときの解決法
iTerm2を使いこなすために覚えておきたいショートカット集
疑似クラスの:hoverと:activeのスマホでの挙動の違い
効率的にHTMLを生成できるPugの特徴や記述方法
gulpfile.jsにAutoprefixerのブラウザオプションを書くとエラーがでる場合の修正方法
gulpのwatch機能を使って、監視ファイルに変更があった時にタスクを実行する
Vue CLIでの画像パスの指定方法・配置場所まとめ
Gitで1行しか変更していないはずのに全行変更した判定になってしまう
gulpでPostCSSを使う方法
AirPodsで片耳を外しても再生が止まらないようにする方法
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
EJSのincludeで別ファイルを読み込むときの画像パスを指定する方法
ターミナルでGitを使う時に最低限覚えておきたいコマンド
Path Finderのフォルダ移動ショートカットキーを設定する【デフォルト設定 + Keyboard Maestro】
Macを起動したのが平日か休日か判定して、起動するアプリを変えるKeyboard Maestroマクロの作り方
Finderで選択したフォルダを特定のアプリケーションで開くAlfred Workflowの作り方
Google Maps APIでピンのアクティブ時にピン画像を変える方法
AppCleanerでMacアプリを関連ファイルごと完全に削除する
MacのMicrosoft Teamsで「申し訳ございません。画像を失った可能性があります。送信前に再度画像を貼り付けてください。」と表示される
Macのターミナルでパスワード付きのZIPファイルを作成する方法
Google日本語入力の辞書をATOKにインポートする方法