Увод
У фронтенд пројектима који ретко захтевају апликацију на једној страници, уграђени стилови ДОМ елемената се често постављају у циљни елемент >' атрибут.
Али у Реацт-у ствари су сасвим другачије у вези са стилизовањем на линији. Овај водич се фокусира на постизање овога користећи пример из стварног света креирања компоненте картице корисничког профила.
Компоненте за стилизовање у Реацт-у
Можда сте већ свесни редовног начина стилизовања Реацт компоненти користећи атрибут цласснаме у комбинацији са спољним стилом:
import React from 'react' import './style.css' function myComponent(){ return( return <p classname="paragraph-text">ClassName Styled Text</p> ) }
јск
paragraph-text{ font-weight: bold; color: beige; }
ЦСС
Инлине Стилес
Добијање истог резултата са уграђеним стиловима функционише сасвим другачије. Да бисте користили уграђене стилове у Реацт-у, користите атрибут стиле, који прихвата ЈаваСцрипт објекат са својствима камила. Пример:
function MyComponent(){ return Inline Styled Component }
Имајте на уму да вредност допуне нема јединицу јер Реацт додаје а 'пк ' суфикс за нека нумеричка својства инлине стила. У случајевима када треба да користите друге јединице, као што су 'ем' или 'рем', експлицитно наведите јединицу са вредношћу као стринг. Примена овога на својство паддинг требало би да буде паддинг: '1.5ем' .
Такође, ови стилови немају аутоматски префикс добављача, тако да морате ручно да додате префиксе добављача.
Побољшајте читљивост
Читљивост МиЦомпонент драматично опада ако стилова постане превише и све постане незграпно. Као што је приказано у наставку, пошто су стилови само објекти, они се могу уклонити из компоненте.
const myComponentStyle = { color: 'blue', lineHeight: 10, padding: '1.5em', } function MyComponent(){ return Inline Styled Component }
јск
Прављење компоненте картице
Хајде да направимо компоненту корисничке картице.
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> }
Правило
Званична Реацт документација лаје на коришћење уграђеног стила као примарног средства за стилизовање пројеката и препоручује коришћење атрибута цлассНаме уместо тога.
Напомена Неки примери у документацији користе стил ради погодности, али се генерално не препоручује коришћење атрибута стила као примарног средства за стилизовање елемената.
У већини случајева, Назив класе с треба да се односи на класе дефинисане у екстерном ЦСС стилу. Стилови се често користе у Реацт апликацијама за додавање динамички израчунатих стилова у време рендеровања.