🕵️ SicherheitslückenCVE-2026-85014 | undici up to 7.29.0/8.10.1 Socket Close denial of service(16.09.2026 um 04:26 Uhr)
🕵️ SicherheitslückenCVE-2026-85014 | undici up to 7.29.0/8.10.1 Socket Close denial of service(16.09.2026 um 04:26 Uhr)

🔧 Programmierung 🕛 vor 1 Jahr 4 Min Lesezeit
0

How to style active Nav links in server components in Next.js

↗ Quelle (dev.to)
🗣️ Stimme:

Hi, everyone! Next.js is really hot right now, especially with the new






However, the problem with this approach is that the component is client-based, which isn’t ideal for SEO. Since we can’t call client hooks in server components, we need to address the question of how to get the pathname on the server side to render the current link as highlighted.



And this question isn’t difficult to answer, here middleware comes in handy. Using middleware, we can add the pathname to the response headers, and configure it so that it triggered for all page routes:




CODE
import { NextResponse } from "next/server";
import type { NextRequest } from "next/server";

export const config = {
matcher: ["/((?!api|_next/static|_next/image|favicon.ico).*)"],
};

export default function middleware(request: NextRequest) {
const requestHeaders = new Headers(request.headers);
requestHeaders.set("x-next-pathname", request.nextUrl.pathname);

return NextResponse.next({ request: { headers: requestHeaders } });
}






Now having x-next-pathname with current pathname we can access it using headers function (mind that Next 15 and above now have asynchronous: headers, cookies, params, and searchParams).




CODE
import { cn } from "@/lib/utils";
import { headers } from "next/headers";
import Link, { type LinkProps } from "next/link";

type ClientNavProps = {
links: LinkProps[];
};

async function ServerNav({ links }: ClientNavProps) {
const headersList = await headers();
const pathname = headersList.get("x-next-pathname") || "/";

const isActive = (href: LinkProps["href"]) => {
const hrefStr = href.toString();
if (hrefStr === pathname) return true;
if (hrefStr.length > 1 && pathname.startsWith(hrefStr)) return true;
return false;
};

return (
<nav className="space-x-2">
{links.map((e) => (
<Link
{...e}
key={e.href.toString()}
className={cn(
"px-2 py-1 border rounded-lg",
isActive(e.href) && "bg-black text-white"
)}
/>
))}
</nav>
);
}

export default ServerNav;






Be cautious about where you place the server navbar in your app. This particular example will only work when used inside page.tsx files, as it needs to be re-rendered on URL changes.






This is likely the simplest way to build a server-side navbar component that highlights the current active link. That’s it—thanks for reading, and see you next time!

Vollständiger Original-Artikel
Den kompletten Beitrag mit allen Details direkt auf dev.to lesen.
↗ Original-Artikel auf dev.to lesen
Wie bewertest du diesen Beitrag?
1 Klick Feedback
Teilen mit Netzwerk & Team:

Community-Analysen & Experten-Meinungen 0

Verfasse deine eigene Analyse, teile Workarounds oder diskutiere diesen Vorfall im Blog.
Noch keine Community-Analyse verfasst. Markiere einen Textabschnitt oder klicke oben auf Eigene Analyse verfassen“!
Community Pulse: Relevanz-Einschätzung
1 Klick Experten-Votum
🔴 Akute Relevanz 0%
🟡 In Evaluierung 0%
🟢 Keine Auswirkung 0%
Spannende Innovation 0%
Verwandte Story-Cluster & Quellen (Vektor-KI)
Port 8095 Engine
7 Quellen
CVE-2024-44965 | Linux Kernel up to 6.10.4 pti_clone_pgtable stack-based overflow (Nessus ID 208953 / WID-SEC-2024-2057)
3 Quellen
CVE-2026-84961 | undici up to 7.29.0/8.10.1 BalancedPool BalancedPool constructor connect/tls certificate validation
3 Quellen
CVE-2026-84657 | Jenkins up to 2.567.x CLI permission
Ähnliche Beiträge
🔍 Verwandte News

Auch interessante Nachrichten How to style active Nav links in server components in Next.js

Thematisch verwandte Begriffe: style, active, links, server · 6 Treffer

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...