Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Bruke Tailwind-klasser i JSX | Seksjon
Stilsetting av React-applikasjoner med Tailwind CSS

bookBruke Tailwind-klasser i JSX

Sveip for å vise menyen

Når du arbeider med React og Tailwind CSS, bruker du Tailwinds hjelpeklasser direkte i JSX-elementene dine for å style komponentene. I stedet for å skrive egendefinert CSS eller bruke klasseselere, legger du ganske enkelt til Tailwind-klasser i className-attributtet på JSX-taggene dine. Denne tilnærmingen holder stilene nær komponentlogikken og gjør det mulig å jobbe raskt uten å bytte mellom CSS- og JavaScript-filer.

For å legge til Tailwind-klasser, bruk className-attributtet (ikke class, som er reservert i JavaScript). For eksempel, hvis du vil lage en knapp med blå bakgrunn, hvit tekst og avrundede hjørner, kan JSX-en din se slik ut:

<button className='bg-blue-500 text-white rounded px-4 py-2'>
  Click Me
</button>

Du kan kombinere så mange Tailwind-klasser du ønsker, adskilt med mellomrom, for å oppnå ønsket design. Her er noen tips for å skrive ryddige og vedlikeholdbare klasselister:

  • Grupper relaterte klasser sammen, som avstand, farge og typografi;
  • Unngå å duplisere motstridende klasser (for eksempel, ikke bruk både bg-blue-500 og bg-red-500 på samme element);
  • Bruk flerlinjestrenger for lange klasselister for å forbedre lesbarheten, spesielt for komplekse komponenter.

Noen ganger ønsker du å bruke klasser betinget—som å legge til en markering hvis en knapp er aktiv, eller skjule et element basert på tilstand. I React kan du bruke JavaScript-uttrykk i className-attributtet for å slå sammen og betinget bruke klasser. Dette gjør komponentene dine dynamiske og responsive for tilstand eller props.

En vanlig tilnærming er å bruke template literals og ternære operatorer. For eksempel, for å markere en knapp når den er aktiv:

<button
  className={
    "px-4 py-2 rounded " +
    (isActive ? "bg-green-500 text-white" : "bg-gray-200 text-black")
  }
>
  Save
</button>

Alternativt kan du bruke array-joining eller hjelpefunksjoner for å håndtere mer kompleks klassesammenslåing. Det viktigste er å holde logikken tydelig og unngå å fylle JSX-en med for mange nestede uttrykk.

Beste praksis inkluderer:

  • Å holde betinget logikk enkel og lesbar i className;
  • Å abstrahere kompleks klassesammenslåing i hjelpefunksjoner om nødvendig;
  • Alltid bruke className (aldri class) i JSX for kompatibilitet med React.

Denne arbeidsflyten lar deg utnytte Tailwinds utility-first-tilnærming fullt ut, samtidig som du drar nytte av Reacts kraft for dynamiske brukergrensesnitt.

Når du slår sammen Tailwind-klasser i React, må du ofte avgjøre hvilke klasser som skal brukes basert på komponentens tilstand eller props. Ved å bruke JavaScript-uttrykk inne i className-attributtet kan du kontrollere hvilke klasser som inkluderes ved rendering. Dette er spesielt nyttig for å veksle mellom ulike visuelle tilstander, som aktiv/inaktiv eller feil/suksess.

For eksempel kan du ønske å bruke en kantfarge kun når et input-felt har en feil:

<input
  className={
    "block w-full px-3 py-2 border rounded " +
    (hasError ? "border-red-500" : "border-gray-300")
  }
/>

I dette eksempelet blir border-red-500-klassen kun lagt til hvis hasError er sann; ellers brukes standard kantfarge. Dette mønsteret kan utvides med mer komplekse betingelser, men klarhet bør alltid være prioritert.

Hvis du trenger å slå sammen flere betingede klasser, vurder å bruke array-syntaks og joining:

<div
  className={[
    "p-4",
    isActive ? "bg-blue-100" : "bg-white",
    isDisabled && "opacity-50"
  ]
    .filter(Boolean)
    .join(" ")}
>
  Panel Content
</div>

Denne tilnærmingen gjør det enkelt å legge til eller fjerne klasser basert på flere betingelser uten å få ekstra mellomrom eller udefinerte verdier i klasselisten.

Husk:

  • Bruk alltid JavaScript-uttrykk for betingede klasser;
  • Foretrekk klarhet og vedlikeholdbarhet fremfor smarte løsninger;
  • Unngå å legge til samme type hjelpeklasse flere ganger, da kun den siste vil gjelde.
question mark

Hvilket av følgende er riktig måte å bruke Tailwind-klasser betinget i et React JSX-element?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 1. Kapittel 2

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Seksjon 1. Kapittel 2
some-alt