Directiva ‘use client’ – Trecerea la componente interactive de client în Next.js

Marchează granița dintre codul executat exclusiv pe server și componentele interactive descărcate și hidrate în browser.

Sintaxă
'use client';

import { useState } from 'react';

export default function Contor() {
  const [val, setVal] = useState(0);
  return <button onClick={() => setVal(val + 1)}>Click: {val}</button>;
}

Ce face Directiva 'use client' - Trecerea la componente interactive de client

Directiva 'use client' trebuie plasată la prima linie a fișierului, înaintea oricăror importuri.

Este necesară ori de câte ori o componentă folosește: hook-uri React (`useState`, `useEffect`, `useReducer`, `useRef`), ascultători de evenimente (`onClick`, `onSubmit`), API-uri de browser (`localStorage`, `window`, `navigator`) sau hook-uri personalizate de client.

Recomandare de arhitectură: împingeți directiva `’use client’` cât mai jos în arborele de componente (de exemplu doar pe un buton sau pe bara de căutare), lăsând restul paginii ca Server Component.

Exemple

Exemplul 1: Crearea unui buton de copiere cod interactiv

Folosește starea locală și API-ul de clipboard din browser.

'use client';

import { useState } from 'react';

export default function ButonCopiere({ text }: { text: string }) {
  const [copiat, setCopiat] = useState(false);

  const copiaza = async () => {
    await navigator.clipboard.writeText(text);
    setCopiat(true);
    setTimeout(() => setCopiat(false), 2000);
  };

  return (
    <button onClick={copiaza} className="btn-copy">
      {copiat ? 'Copiat!' : 'Copiază codul'}
    </button>
  );
}

Ieșire în terminal

Butonul răspunde instant la click în browser.

Greșeli frecvente

  • Marcarea layout-ului principal sau a întregii pagini cu ‘use client’, anulând toate beneficiile de performanță și securitate oferite de Server Components.

Comenzi înrudite

Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: Directiva ‘use client’ – Trecerea la componente interactive de client

Ai o nelămurire despre utilizarea comenzii Directiva ‘use client’ – Trecerea la componente interactive de client sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!

💬

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.