This repository was archived by the owner on May 1, 2025. It is now read-only.
File tree Expand file tree Collapse file tree 4 files changed +9
-11
lines changed
content/2.concepts/5.middleware Expand file tree Collapse file tree 4 files changed +9
-11
lines changed Original file line number Diff line number Diff line change 1+ export default defineNuxtRouteMiddleware ( ( ) => {
2+ console . log ( 'hello-foo' )
3+ } )
Original file line number Diff line number Diff line change 11export default defineNuxtRouteMiddleware ( ( to ) => {
2- // FIXME: import . meta . server が置換されてしまう
3- if ( import . meta . server )
2+ // import. meta を利用した分岐でも OK
3+ if ( ! window ?. localStorage )
44 return
55
6- const isSignedIn = JSON . parse ( localStorage . getItem ( 'isSignedIn' ) || 'false' )
6+ const isSignedIn = JSON . parse ( window . localStorage . getItem ( 'isSignedIn' ) || 'false' )
77
88 if ( ! isSignedIn && to . path !== '/' ) {
99 return navigateTo ( '/' )
Original file line number Diff line number Diff line change 1- <script setup lang="ts">
2- definePageMeta ({
3- middleware: [' hello-foo' ],
4- })
5- </script >
6-
71<template >
82 <h1 >Foo</h1 >
93 <NuxtLink to =" /" >
Original file line number Diff line number Diff line change @@ -59,11 +59,12 @@ definePageMeta({
5959
6060これらのミドルウェアは、クライアント上でのナビゲーション時はもちろん、SSR または SSG でのページ生成時にもサーバーサイドで実行されます。\
6161ミドルウェアでローカルストレージなどのクライアントサイドの API を使用する場合は、クライアントサイドのみで実行されるようにする必要があります。\
62- ` import.meta ` を使うことで実行している環境を判定することができます。サーバーサイドでの実行スキップする場合は ` import.meta.server ` を利用します。
62+ ` import.meta ` を使うことで実行している環境を判定することができます。
63+ サーバーサイドでの実行スキップする場合は ` import.meta.server ` を利用します。
6364
6465``` ts
6566export default defineNuxtRouteMiddleware ((to ) => {
66- // skip middleware on server
67+ // skip middleware on server (if (import.meta.client) { ... } でも同様)
6768 if (import .meta .server )
6869 return
6970
You can’t perform that action at this time.
0 commit comments