Capítulo 103 de 456
'use client' (feature do React) declara um entry point para componentes renderizados no client side, usado quando a UI precisa de interatividade (state, event handlers, browser APIs). Define a fronteira server/client: os componentes exportados do arquivo viram entry points para o client.
'use client' em todo arquivo que contém Client Components, só nos arquivos cujos componentes você quer renderizar diretamente dentro de Server Components.onClick passadas de fora não são serializáveis.'use client'
import { useState } from 'react'
export default function Counter() {
const [count, setCount] = useState(0)
return (
<div>
<p>Count: {count}</p>
<button onClick={() => setCount(count + 1)}>Increment</button>
</div>
)
}
useState, directive no topo antes de qualquer import.import Header from './header'
import Counter from './counter' // This is a Client Component
export default function Page() {
return (
<div>
<Header />
<Counter />
</div>
)
}
Header) com Client Component (Counter) na mesma página.onClick vindo de fora não é serializável, quebra a fronteira server/client.'use client' em todo arquivo por precaução: desnecessário e aumenta o bundle client; use só nos arquivos que precisam ser entry point.'use client' sempre fica no topo do arquivo, antes de imports, sem exceção de posicionamento inline.'use client'.