追記) v3.0.0-rc2以降
記事を書いたら、対応されていることを教えてもらえた(*´ω`*)アリガタイ
bridge でも一部definePageMeta 使えます!
— wattanx (@pontaxx) November 7, 2023
(nuxt.config に設定が必要なんですがドキュメントに書かれてないのでPRを参考にしていただければと 🙏)https://t.co/0Y5NsSJQat
nuxt.config.ts
にmacros.pageMeta
を指定すると、
#imports
にdefinePageMeta
含まれるようになる。
import { defineNuxtConfig } from '@nuxt/bridge'; export default defineNuxtConfig({ bridge: { vite: false, nitro: false, typescript: true, // これを指定 macros: { pageMeta: true, } }, });
これでsetupだけでmiddlewareが使えるようになる。
<script lang="ts" setup> import { definePageMeta } from "#imports"; definePageMeta({ middleware: ["authed"] }); </script>
rc-2での定義はこんな感じ。layout
も使える。
import type { DefineComponent } from 'vue'; export interface PageMeta { name?: string; middleware?: DefineComponent['middleware']; layout?: DefineComponent['layout']; } export declare const definePageMeta: (_: PageMeta) => void;
ほかにもGlobal Middleware
もサポートされたよう。ありがたい。。
v3.0.0-rc1以前
Nuxt3/Vue3では、definePageMeta
を使って個別にmiddlewareを指定できるが、
Nuxt Bridge/Vue2.7では存在しないよう。。
併用する形だと対応できるっぽい(*´ω`*)
こちらの記事の引用
<script setup lang="ts"> // ... </script> <script lang="ts"> export default defineComponent({ middleware: "authed", }) </script>
なるほど、どちらも書けるのか(*´ω`*)