Files
pulse-libs/skills/next-best-practices/functions.md
T
Pulse ae39e45460 feat: biblioteca inteligente libs/ + 5 novas skills (20 skills total)
NOVAS SKILLS:
- next-best-practices      v0.1.0  (CLEAN) — Next.js App Router, RSC, caching, data
- nextjs-patterns          v1.0.0  (CLEAN) — Next.js 15: Server Actions, route handlers
- vite                     v1.0.0  (CLEAN) — env vars, aliases, proxy, CJS compat
- uncle-bob                v1.0.0  (CLEAN) — Clean Code, SOLID, Clean Architecture
- clean-code-review        v1.0.0  (CLEAN) — naming, guard clauses, anti-patterns, refactoring
- vue                      v1.0.0  (CLEAN) — Vue framework
- vue-composition-api-best-practices v1.0.0 (CLEAN) — composables, Pinia, reactivity

BIBLIOTECA INTELIGENTE libs/ (10 dominios, 11 arquivos):
- typescript/ — TS safe + generics gotchas
- react/ — Next.js App Router + Vite config
- vue/ — Composition API + Pinia
- linux/ — System diagnostic cheatsheet
- database/ — PostgreSQL + MySQL patterns
- browser/ — Chromium CLI + E2E testing
- security/ — SAST audit (OWASP Top 10)
- best-practices/ — Clean Code + SOLID + Clean Architecture
- deploy/ — Docker multi-stack + OpenClaw ops
- + INDEX.md como guia de navegacao

.learnings/ — LRN-20260519-003 criado (biblioteca compartilhada)
2026-05-19 21:03:25 -03:00

4.3 KiB

Functions

Next.js function APIs.

Reference: https://nextjs.org/docs/app/api-reference/functions

Navigation Hooks (Client)

Hook Purpose Reference
useRouter Programmatic navigation (push, replace, back, refresh) Docs
usePathname Get current pathname Docs
useSearchParams Read URL search parameters Docs
useParams Access dynamic route parameters Docs
useSelectedLayoutSegment Active child segment (one level) Docs
useSelectedLayoutSegments All active segments below layout Docs
useLinkStatus Check link prefetch status Docs
useReportWebVitals Report Core Web Vitals metrics Docs

Server Functions

Function Purpose Reference
cookies Read/write cookies Docs
headers Read request headers Docs
draftMode Enable preview of unpublished CMS content Docs
after Run code after response finishes streaming Docs
connection Wait for connection before dynamic rendering Docs
userAgent Parse User-Agent header Docs

Generate Functions

Function Purpose Reference
generateStaticParams Pre-render dynamic routes at build time Docs
generateMetadata Dynamic metadata Docs
generateViewport Dynamic viewport config Docs
generateSitemaps Multiple sitemaps for large sites Docs
generateImageMetadata Multiple OG images per route Docs

Request/Response

Function Purpose Reference
NextRequest Extended Request with helpers Docs
NextResponse Extended Response with helpers Docs
ImageResponse Generate OG images Docs

Common Examples

Navigation

Use next/link for internal navigation instead of <a> tags.

// Bad: Plain anchor tag
<a href="/about">About</a>

// Good: Next.js Link
import Link from 'next/link'

<Link href="/about">About</Link>

Active link styling:

'use client'

import Link from 'next/link'
import { usePathname } from 'next/navigation'

export function NavLink({ href, children }) {
  const pathname = usePathname()

  return (
    <Link href={href} className={pathname === href ? 'active' : ''}>
      {children}
    </Link>
  )
}

Static Generation

// app/blog/[slug]/page.tsx
export async function generateStaticParams() {
  const posts = await getPosts()
  return posts.map((post) => ({ slug: post.slug }))
}

After Response

import { after } from 'next/server'

export async function POST(request: Request) {
  const data = await processRequest(request)

  after(async () => {
    await logAnalytics(data)
  })

  return Response.json({ success: true })
}