Uvod
U projektima sučelja koji rijetko zahtijevaju aplikaciju na jednoj stranici, ugrađeni stilovi DOM elemenata često se postavljaju u ciljni element >' atribut.
Ali u Reactu su stvari sasvim drugačije u vezi stiliziranja inline. Ovaj se vodič usredotočuje na postizanje toga korištenjem primjera iz stvarnog svijeta izrade komponente kartice korisničkog profila.
Komponente stiliziranja u Reactu
Možda ste već svjesni uobičajenog načina stiliziranja komponenti Reacta pomoću atributa imena klase u kombinaciji s vanjskom tablicom stilova:
import React from 'react' import './style.css' function myComponent(){ return( return <p classname="paragraph-text">ClassName Styled Text</p> ) }
jsx
paragraph-text{ font-weight: bold; color: beige; }
CSS
Umetnuti stilovi
Dobivanje istog rezultata s ugrađenim stilovima funkcionira sasvim drugačije. Da biste koristili ugrađene stilove u Reactu, upotrijebite atribut style, koji prihvaća JavaScript objekt sa svojstvima deve. Primjer:
function MyComponent(){ return Inline Styled Component }
Imajte na umu da padding vrijednost nema jedinicu jer React dodaje a 'px ' sufiks nekim svojstvima numeričkog stila u retku. U slučajevima kada trebate koristiti druge jedinice, kao što su 'em' ili 'rem', eksplicitno navedite jedinicu s vrijednošću kao niz. Primjena ovoga na svojstvo padding bi trebala biti padding: '1,5em' .
Također, ovi stilovi nemaju automatski prefiks dobavljača, tako da prefikse dobavljača morate dodati ručno.
Poboljšajte čitljivost
Čitljivost MyComponent dramatično pada ako stilova postane previše i sve postane nezgrapno. Kao što je prikazano u nastavku, budući da su stilovi samo objekti, mogu se ukloniti iz komponente.
const myComponentStyle = { color: 'blue', lineHeight: 10, padding: '1.5em', } function MyComponent(){ return Inline Styled Component }
jsx
Izrada komponente kartice
Izgradimo komponentu korisničke kartice.
const cardStyles = { container: { display: 'flex', height: 100, width: 400, boxShadow: '0 0 3px 2px #cec7c759', alignItems: 'center', padding: 20, borderRadius: 20, }, profilePicture: { display: 'flex', justifyContent: 'center', alignItems: 'center', backgroundColor: 'orange', color: 'white', height: 20, width: 20, borderRadius: '50%', padding: 10, fontWeight: 'bold', }, bio: { marginLeft: 10, }, userName: { fontWeight: 'bold', }, }; function userCardComponent(){ <span style="{cardStyles.profilePicture}">D</span> <p style="{cardStyles.userName}">Desmond Nyamador</p> <p>I just learned an easy way to style React Components</p> }
Praktično pravilo
Službena dokumentacija Reacta laje na korištenje ugrađenog stiliziranja kao primarnog sredstva stiliziranja projekata i umjesto toga preporučuje korištenje atributa className.
Napomena Neki primjeri u dokumentaciji koriste stil radi praktičnosti, ali općenito se ne preporučuje korištenje atributa stila kao primarnog sredstva stiliziranja elemenata.
U većini slučajeva, naziv klase s bi se trebao odnositi na klase definirane u vanjskoj tablici stilova CSS-a. Stilovi se često koriste u React aplikacijama za dodavanje dinamički izračunatih stilova tijekom renderiranja.