useSelectedLayoutSegment
API Reference for the useSelectedLayoutSegment hook.
useSelectedLayoutSegment
is a Client Component hook that lets you read the active route segment one level below the Layout it is called from.
It is useful for navigation UI, such as tabs inside a parent layout that change style depending on the active child segment.
Good to know:
- Since
useSelectedLayoutSegment
is a Client Component hook, and Layouts are Server Components by default,useSelectedLayoutSegment
is usually called via a Client Component that is imported into a Layout. useSelectedLayoutSegment
only returns the segment one level down. To return all active segments, seeuseSelectedLayoutSegments
Parameters
useSelectedLayoutSegment
optionally accepts a parallelRoutesKey
, which allows you to read the active route segment within that slot.
Returns
useSelectedLayoutSegment
returns a string of the active segment or null
if one doesn't exist.
For example, given the Layouts and URLs below, the returned segment would be:
Layout | Visited URL | Returned Segment |
---|---|---|
app/layout.js | / | null |
app/layout.js | /dashboard | 'dashboard' |
app/dashboard/layout.js | /dashboard | null |
app/dashboard/layout.js | /dashboard/settings | 'settings' |
app/dashboard/layout.js | /dashboard/analytics | 'analytics' |
app/dashboard/layout.js | /dashboard/analytics/monthly | 'analytics' |
Examples
Creating an active link component
You can use useSelectedLayoutSegment
to create an active link component that changes style depending on the active segment. For example, a featured posts list in the sidebar of a blog:
Version History
Version | Changes |
---|---|
v13.0.0 | useSelectedLayoutSegment introduced. |