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 1
1
export default defineNuxtRouteMiddleware ( ( to ) => {
2
- // FIXME: import . meta . server が置換されてしまう
3
- if ( import . meta . server )
2
+ // import. meta を利用した分岐でも OK
3
+ if ( ! window ?. localStorage )
4
4
return
5
5
6
- const isSignedIn = JSON . parse ( localStorage . getItem ( 'isSignedIn' ) || 'false' )
6
+ const isSignedIn = JSON . parse ( window . localStorage . getItem ( 'isSignedIn' ) || 'false' )
7
7
8
8
if ( ! isSignedIn && to . path !== '/' ) {
9
9
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
-
7
1
<template >
8
2
<h1 >Foo</h1 >
9
3
<NuxtLink to =" /" >
Original file line number Diff line number Diff line change @@ -59,11 +59,12 @@ definePageMeta({
59
59
60
60
これらのミドルウェアは、クライアント上でのナビゲーション時はもちろん、SSR または SSG でのページ生成時にもサーバーサイドで実行されます。\
61
61
ミドルウェアでローカルストレージなどのクライアントサイドの API を使用する場合は、クライアントサイドのみで実行されるようにする必要があります。\
62
- ` import.meta ` を使うことで実行している環境を判定することができます。サーバーサイドでの実行スキップする場合は ` import.meta.server ` を利用します。
62
+ ` import.meta ` を使うことで実行している環境を判定することができます。
63
+ サーバーサイドでの実行スキップする場合は ` import.meta.server ` を利用します。
63
64
64
65
``` ts
65
66
export default defineNuxtRouteMiddleware ((to ) => {
66
- // skip middleware on server
67
+ // skip middleware on server (if (import.meta.client) { ... } でも同様)
67
68
if (import .meta .server )
68
69
return
69
70
You can’t perform that action at this time.
0 commit comments