Nuxt で子ページ共通の layout を使う

/foo/:param みたいにあるディレクトリ配下でいろんなページを表示する場合に、そこだけ共通の layout を使いたいときの方法。と言ってもやることはめっちゃ簡単なんですが。

まずはディレクトリ構成から。

pages/
--| users/
-----| _id.vue
-----| index.vue
--| users.vue

ユーザー関連のページがあったとして、/users はトップページ。/users/:id は各ユーザーの詳細ページとする。このとき、/users 共通の layout を使いたいときは、同じディレクトリ階層に親ファイル users.vue を用意すればいいです。

<template>
 <nuxt-child />
</template>

<script lang="ts" scoped>
import Vue from "vue";
export default Vue.extend({
 layout: "users"
});
</script>

そして、layout/users.vue に書きたい共通のビューを書けば OK です。割と簡単。