Úvod
Vo frontendových projektoch, ktoré zriedka vyžadujú jednostránkovú aplikáciu, sú vložené štýly prvkov DOM často umiestnené v cieľovom prvku. >' atribút.
Ale v Reacte sú veci celkom iné, pokiaľ ide o styling inline. Táto príručka sa zameriava na dosiahnutie tohto cieľa pomocou skutočného príkladu vytvorenia komponentu Karta profilu používateľa.
Stylingové komponenty v React
Možno už viete o bežnom spôsobe štýlovania komponentov React pomocou atribútu classname v spojení s externým štýlom:
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
Vložené štýly
Dosiahnutie rovnakého výsledku s vloženými štýlmi funguje úplne inak. Ak chcete použiť vložené štýly v React, použite atribút štýlu, ktorý akceptuje objekt JavaScript s vlastnosťami ťavy. Príklad:
function MyComponent(){ return Inline Styled Component }
Všimnite si, že hodnota výplne nemá jednotku, pretože React pridáva a 'px Prípona ' k niektorým vlastnostiam číselného štýlu vloženého textu. V prípadoch, keď potrebujete použiť iné jednotky, ako napríklad „em“ alebo „rem“, jednoznačne uveďte jednotku s hodnotou ako reťazec. Ak to použijete na vlastnosť čalúnenia, malo by to byť čalúnenie: '1,5 em' .
Tieto štýly tiež nemajú automaticky predponu dodávateľa, takže predpony dodávateľa musíte pridať ručne.
Zlepšite čitateľnosť
Čitateľnosť MyComponent dramaticky klesá, ak je štýlov príliš veľa a všetko je neohrabané. Ako je uvedené nižšie, keďže štýly sú len objekty, možno ich z komponentu odstrániť.
const myComponentStyle = { color: 'blue', lineHeight: 10, padding: '1.5em', } function MyComponent(){ return Inline Styled Component }
jsx
Zostavenie kartového komponentu
Poďme zostaviť komponent používateľskej karty.
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> }
Pravidlo palca
Oficiálna dokumentácia Reactu šteká na používanie vloženého štýlu ako primárneho prostriedku na úpravu projektov a odporúča namiesto toho použiť atribút className.
Poznámka Niektoré príklady v dokumentácii používajú štýl pre pohodlie, ale vo všeobecnosti sa neodporúča používať atribút štýlu ako primárny prostriedok na úpravu prvkov.
Väčšinou, názov triedy s by mali odkazovať na triedy definované v externom šablóne so štýlmi CSS. Štýly sa často používajú v aplikáciách React na pridávanie dynamicky vypočítaných štýlov v čase vykresľovania.