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>

コードスニペットの管理方法や命名規則について
CSSのカスタムプロパティ(変数機能)の使い方
Visual Studio Codeで対応する括弧に色を付けて見やすくする環境設定
Visual Studio Codeの文字サイズやタブサイズの設定方法
gulpでSSI(サーバーサイドインクルード)を使用する「connect-ssi」
全角スペースを可視化してくれるVisual Studio Codeの拡張機能「zenkaku」
SourceTreeでマージ時に「fatal: You have not concluded your merge (MERGE_HEAD exists).」と表示される場合の対処法
Visual Studio Codeのファイル横に表示されるファイルアイコンのテーマまとめ
resizeイベントを使用する場合は、iOS Safariでの挙動に注意
gulp-plumberとgulp-notifyでgulpエラー時にデスクトップで通知がくるようにする
AirPodsで片耳を外しても再生が止まらないようにする方法
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
Macで.pemを使ってAmazon EC2インスタンスへSSH接続する方法
Macユーザーにオススメのスニペットアプリ「Dash」でコードや定型文の管理を行う
Bracket Pair ColorizerでVisual Studio Codeの括弧を色分けして見やすくする
Dropbox Ignore node_modulesを使って「node_modules」を「同期の無視」に追加する方法
iTerm2で画面の見た目や細かい設定などを「プロファイル」単位で保存・管理する環境設定の「Profiles」タブ
Brewfileを使ってMac移行時にコマンド1つで必要なアプリを全てインストールできるようにする|Homebrew Bundle
Google Chromeをショートカットキーで操作できるようにする
GoogleアナリティクスとGoogleアドセンスを連携して、細かいデータを見る方法
Alfredの設定画面でショートカットキーが認識されない場合はKeyboard Maestroの設定を確認しよう
Karabiner-Elementsの独自ルールの作成方法