Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Tillämpa Tailwind-klasser i JSX | Sektion
Styling av React-applikationer med Tailwind CSS

bookTillämpa Tailwind-klasser i JSX

Svep för att visa menyn

När du arbetar med React och Tailwind CSS använder du Tailwinds utility-klasser direkt i dina JSX-element för att styla dina komponenter. Istället för att skriva egen CSS eller använda klass-selektorer, lägger du helt enkelt till Tailwind-klasser i attributet className på dina JSX-taggar. Detta tillvägagångssätt håller din styling nära din komponentlogik och hjälper dig att arbeta snabbt utan att behöva växla mellan CSS- och JavaScript-filer.

För att lägga till Tailwind-klasser använder du attributet className (inte class, som är reserverat i JavaScript). Om du till exempel vill skapa en knapp med blå bakgrund, vit text och rundade hörn kan din JSX se ut så här:

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

Du kan kombinera så många Tailwind-klasser du behöver, separerade med mellanslag, för att uppnå önskad design. Här är några tips för att skriva rena och underhållbara klasslistor:

  • Gruppera relaterade klasser tillsammans, såsom avstånd, färg och typografi;
  • Undvik att duplicera motstridiga klasser (till exempel, använd inte både bg-blue-500 och bg-red-500 på samma element);
  • Använd flerradiga strängar för långa klasslistor för att förbättra läsbarheten, särskilt för komplexa komponenter.

Ibland vill du tillämpa klasser villkorligt—till exempel lägga till en markering om en knapp är aktiv, eller dölja ett element baserat på tillstånd. I React kan du använda JavaScript-uttryck inom attributet className för att slå ihop och villkorligt tillämpa klasser. Detta gör dina komponenter dynamiska och responsiva mot state eller props.

Ett vanligt tillvägagångssätt är att använda template literals och ternära operatorer. Till exempel, för att markera en knapp när den är aktiv:

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

Alternativt kan du använda array-join eller hjälpfunktioner för att hantera mer komplex sammanslagning av klasser. Det viktiga är att hålla din logik tydlig och undvika att belamra din JSX med för många nästlade uttryck.

Bästa praxis inkluderar:

  • Hålla villkorslogik enkel och läsbar inom className;
  • Abstrahera komplex sammanslagning av klasser till hjälpfunktioner vid behov;
  • Alltid använda className (aldrig class) i JSX för kompatibilitet med React.

Detta arbetsflöde låter dig dra full nytta av Tailwinds utility-first-approach samtidigt som du utnyttjar Reacts kraft för dynamiska användargränssnitt.

När du slår ihop Tailwind-klasser i React behöver du ofta avgöra vilka klasser som ska tillämpas baserat på komponentens state eller props. Genom att använda JavaScript-uttryck inuti attributet className kan du styra vilka klasser som inkluderas vid rendering. Detta är särskilt användbart för att växla mellan olika visuella tillstånd, såsom aktiv/inaktiv eller fel/lyckad.

Till exempel kan du vilja tillämpa en kantfärg endast när ett inputfält har ett fel:

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

I detta exempel läggs klassen border-red-500 endast till om hasError är true; annars används standardkantfärgen. Detta mönster kan utökas med mer komplexa villkor, men tydlighet bör alltid vara din prioritet.

Om du behöver slå ihop flera villkorliga klasser, överväg att använda array-syntax och join:

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

Detta tillvägagångssätt gör det enkelt att lägga till eller ta bort klasser baserat på flera villkor utan att skapa extra mellanslag eller undefined-värden i din klasslista.

Kom ihåg:

  • Använd alltid JavaScript-uttryck för villkorliga klasser;
  • Föredra tydlighet och underhållbarhet framför smarta lösningar;
  • Undvik att lägga till samma typ av utility-klass flera gånger, eftersom endast den sista kommer att gälla.
question mark

Vilket av följande är det korrekta sättet att villkorligt tillämpa Tailwind-klasser i ett React JSX-element?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 1. Kapitel 2

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Avsnitt 1. Kapitel 2
some-alt