⊗jsrtPmSyStC 103 of 112 menu

Стилизација помоћу Styled Components у React-у

У претходним лекцијама смо разматрали технике стилизације користећи глобални CSS и инлајн стилизацију. У овој лекцији ћемо радити са ефикаснијим приступом за веће апликације - коришћењем библиотеке styled-components.

Дакле, узмимо нашу компоненту без CSS стилова, коју смо користили у претходним лекцијама:

function App() { return ( <div> <p>text</p> <p>text</p> <p>text</p> </div> ); }

За почетак инсталирајмо библиотеку Styled Components:

npm install --save styled-components

Затим увезмо неопходни пакет у компоненту App:

import styled from 'styled-components';

Сада можемо да обавијамо тагове у стилове и примењујемо их као React компоненте, али сада са стиловима директно прикаченим у JS-у. Овакав приступ се још назива CSS у JS.

Хајде да стилизујемо први пасус. За то пре функције App, после линија увоза, креирајмо компоненту Text1. У објекту styled из библиотеке нам треба пасус, па пишемо styled.p. Затим, у шаблонском стрингу набројимо неопходне нам CSS стилове - као у обичном CSS-у:

const Text1 = styled.p` color: orangered; font-weight: bold; `;

Као што видите, овде користимо чист CSS у виду шаблонских стрингова, што је веома згодно. На сличан начин можемо користити медија упите, псеудо елементе, селекторе и друге функционалности CSS-а.

Сада унутар функције компоненте App заменимо таг p креираном нама компонентом Text1 са CSS стиловима:

<Text1>text</Text1>

На сличан начин стилизујмо други и трећи пасус. За то креирајмо компоненте Text2 и Text3:

const Text2 = styled.p` font-style: italic; color: brown; `; const Text3 = styled.p` background-color: orange; font-weight: bold; color: white; `;

И, на крају, стилизујмо наш див. За то креирајмо компоненту и назовимо је Container:

const Container = styled.div` width: 200px; border: 2px solid brown; padding: 10px; text-align: center; `;

Заменимо све наше тагове креираним компонентама:

import styled from "styled-components"; const Container = styled.div` width: 200px; border: 2px solid brown; padding: 10px; text-align: center; `; const Text1 = styled.p` color: orangered; font-weight: bold; `; const Text2 = styled.p` font-style: italic; color: brown; `; const Text3 = styled.p` background-color: orange; font-weight: bold; color: white; `; function App() { return ( <Container> <Text1>text</Text1> <Text2>text</Text2> <Text3>text</Text3> </Container> ); }

Захваљујући овом приступу могуће је креирати вишеструко употребљиве компоненте са стиловима.

Ако отворите генерисани HTML у панелу програмера у прегледачу, видећете да је код сваке компоненте генерисана своја јединствена класа. На тај начин, више не морамо да бринемо о конфликтима између класа појединачних компоненти.

На сличан начин могуће је стилизовати компоненте, користећи, на пример, библиотеку Emotion.

Узмите React компоненту коју сте правили у задатку за прошлу лекцију, стилизујте је, користећи библиотеку Styled Components.

Српски
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Користимо колачиће за рад сајта, аналитику и персонализацију. Обрада података се врши у складу са Политиком приватности.
прихвати све подеси одбиј