Menu

useSelectedLayoutSegments

useSelectedLayoutSegmentsは、呼び出したLayoutより下位のアクティブなルートセグメントを読み取ることができるClient Componentフックです。

パンくずリストなど、アクティブな子セグメントの情報が必要な親LayoutsでのUI構築に役立ちます。

app/example-client-component.tsx
TypeScript
'use client'
 
import { useSelectedLayoutSegments } from 'next/navigation'
 
export default function ExampleClientComponent() {
  const segments = useSelectedLayoutSegments()
 
  return (
    <ul>
      {segments.map((segment, index) => (
        <li key={index}>{segment}</li>
      ))}
    </ul>
  )
}

補足

  • useSelectedLayoutSegmentsClient Componentフックであり、LayoutsはデフォルトでServer Componentsであるため、useSelectedLayoutSegmentsは通常、LayoutにインポートされたClient Componentから呼び出されます。
  • 返されるセグメントにはRoute Groupsが含まれており、これらをUIに含めたくない場合があります。角括弧で始まるアイテムを削除するには、filter配列メソッドを使用できます。

Parameters

const segments = useSelectedLayoutSegments(parallelRoutesKey?: string)

useSelectedLayoutSegmentsは、オプションでparallelRoutesKeyを受け入れ、そのスロット内のアクティブなルートセグメントを読み取ることができます。

Returns

useSelectedLayoutSegmentsは、フックが呼び出されたlayoutより1段下のアクティブなセグメントを含む文字列の配列を返します。セグメントが存在しない場合は空の配列を返します。

以下のLayouts と URLが与えられた場合、返されるセグメントは以下のようになります:

LayoutVisited URLReturned Segments
app/layout.js/[]
app/layout.js/dashboard['dashboard']
app/layout.js/dashboard/settings['dashboard', 'settings']
app/dashboard/layout.js/dashboard[]
app/dashboard/layout.js/dashboard/settings['settings']

Version History

VersionChanges
v13.0.0導入時期:useSelectedLayoutSegments