Remixにおいて「URLはネストさせたいが、レイアウトは引き継ぎたくない」というケースがある。
そんなときは、親セグメントの末尾に _
をつけるとよい。
実際にファイルを作成して動きを見ていく。
|
|
Nested Layouts Without Nested Urlsの記事と同様、 root.tsx
には Header と Footer を設定している。
home.tsx
home.tsx
には h1
と Outlet
だけを設定する(簡単のため、JSXのみ記載する)
|
|
/home
にアクセスしてみる。
h1
と共に、root.tsx
で設定したHeaderとFooterが表示される。
home.concerts.tsx
home.concerts.tsx
には h2
と Outlet
だけを設定する(簡単のため、JSXのみ記載する)
|
|
/home/concerts
にアクセスしてみる。
root.tsx
で設定したHeaderとFooter、親であるhome.tsx
で設定した h1
が表示され、このコンポーネントで設定した h2
が表示される。
home.concerts.trending.tsx
home.concerts.trending.tsx
には h3
だけを設定する(簡単のため、JSXのみ記載する)
|
|
/home/concerts/trending
にアクセスしてみる。
root.tsx
で設定したHeaderとFooter、親であるhome.tsx
で設定した h1
、親であるhome.concerts.tsx
で設定した h2
が表示され、このコンポーネントで設定した h3
が表示される。
home.concerts_.mine.tsx
home.concerts_.mine.tsx
には h2
だけを設定する(簡単のため、JSXのみ記載する)
|
|
/home/concerts/mine
にアクセスしてみる。
root.tsx
で設定したHeaderとFooter、親であるhome.tsx
で設定した h1
が表示され、このコンポーネントで設定した h2
が表示される。
URLのネスト上は親となる home.concerts.tsx
のレイアウトは適用されない。