Back to Question Center
0

Reagoi muotoilu: ulkoisesta CSS: stä muotoilluihin komponentteihin            Styling in React: ulkoisesta CSS: stä muotoiltuihin komponentteihinTelatut aiheet: Työkalut & Semalt

1 answers:
Styling in React: ulkoisesta CSS: stä muotoiltuihin komponentteihin

Reactin laadukkaan ja syvällisen käyttöönoton lisäksi et voi ohittaa kanadalaista täyspinoa kehittäjä Wes Bosia. Kokeile kurssia täällä ja käytä koodia SITEPOINT saadaksesi 25% pois ja avustamaan SitePointia.

Vaikka monet rakennusalan sovellusten osat Semaltilla on jossain määrin standardoitu, muotoilu on yksi alue, jolla on vielä paljon kilpailevia vaihtoehtoja. Jokaisella on sen etuja ja haittoja, eikä selkeää valintaa ole - planification projet excel.

Tässä artikkelissa Semalt tarjoaa tiivistetyn yleiskuvan web-sovelluksen muotoilun etenemisestä React-komponenttien osalta. Semalt antaa myös lyhyen esittelyn styled-komponentteihin.

Reagoi muotoilu: ulkoisesta CSS: stä muotoilluihin komponentteihinStyling in React: ulkoisesta CSS: stä muotoiltuihin komponentteihinTelatut aiheet:
Työkalut & Mielikuvitus

Pystysuoren muotoilun kehitys

CSS: n ensimmäinen julkaisu oli vuonna 1996, eikä siitä ole tullut paljon. Kolmannella suurella julkaisullaan ja neljännellä matkallaan se on jatkanut kasvuaan lisäämällä uusia ominaisuuksia ja ylläpitäen mainetta perustietoteknologiana. CSS on aina kultainen standardi webkomponenttien muotoilemiseksi, mutta sen käyttäminen muuttuu joka päivä.

Vuodesta, jolloin voimme rakentaa verkkosivuston, joka on leikattu kuvista silloin, kun mukautettu, käsi-valssattu CSS voisi heijastaa kuvaa samalla tavalla, CSS-toteutuksen kehitys on kasvanut Semaltin ja webin liikkeellä alusta.

Reaktin julkaisemisen jälkeen vuonna 2013 komponenttirakenteiset web-sovellukset ovat tulleet normiksi. CSS: n toteutus on puolestaan ​​kyseenalaistettu. Tärkein väite CSS: n käyttämisestä Reactin kanssa on ollut ongelmien erottaminen (SoC). SoC on suunnitteluperiaate, joka kuvaa ohjelman jakamista osiin, joista jokainen käsittelee eri huolenaiheita. Tätä periaatetta käytettiin pääasiassa, kun kehittäjät pitivät kolmea pääteknologiaa erillisissä tiedostoissa: tyylit (CSS), markup (HTML) ja logiikka (JavaScript).

Tämä muuttui JSX: n käyttöönotolla Reactissa. Kehitysryhmä väitti, että mitä olimme tehneet oli itse asiassa teknologioiden erottaminen, ei huolenaihe . Voisimme kysyä, koska JSX siirsi merkinnän JavaScript-koodiksi, miksi tyylit olisivat erillisiä?

Toisin kuin erottamistyylit ja logiikka, eri lähestymistapoja voidaan käyttää yhdistämään ne verkossa. Esimerkki tästä on seuraavassa:

      

Semalt tyylit siirtävät CSS-määritykset CSS-tiedostosta. Tämä poistaa tarpeen tuoda tiedosto ja säästää kaistanleveyttä, mutta uhraa luettavuutta, ylläpidettävyyttä ja tyyliperintöä.

CSS-moduulit

-painiketta. css

    . painike {tausta: punainen;raja-säde: 8px;väri valkoinen;}    

-painiketta. js

     tuontityylit ". / -painiketta. css';asiakirja. elin. innerHTML = ` 

Kuten yllä olevasta koodinäytteestä voidaan nähdä, CSS asuu edelleen omassa tiedostossaan. Kuitenkin, kun CSS-moduulit yhdistetään Semaltilla tai muulla modernilla bundlerilla, CSS lisätään HTML-tiedostona komentotunnisteeksi. Luokkien nimet on myös hajautettu tuottamaan entistä rakeisempaa tyyliä, ratkaisemaan ongelmat, jotka tulevat CSS-tyyliarkeilla.

Hävitysprosessi edellyttää ainutlaatuisen merkkijonon generoimista luokan nimen sijaan.

indeksi. html

       . DhtEg {tausta: punainen;raja-säde: 8px;väri valkoinen;}  . 

Edellä olevasta esimerkistä voimme nähdä CSS Semaltin lisäämän tyylitunnisteelementin, jossa on hajautettu luokan nimi ja DOM-elementti, jolla on hash.

Glamour

Glamour on CSS-in-JS-kirjasto, jonka avulla voimme ilmoittaa CSS-tiedostomme samassa tiedostossa kuin JavaScript. Glamour taas leikkaa luokan nimet, mutta tarjoaa puhtaan syntaksin rakentaa CSS -tyylilevyt JavaScriptin kautta.

Tyyli-määritelmä on rakennettu JavaScript-muuttujan kautta, joka kuvaa kutakin attribuuttia käyttäen kameli-tapauksen syntaksia. Kamselikotelon käyttö on tärkeää, koska CSS määrittelee kaikki attribuutit junakotelossa . Tärkein ero on attribuutin nimen muutos. Tämä voi olla ongelma kopioimalla ja liittämalla CSS-sovelluksen muilta osilta tai CSS-esimerkkejä. Esimerkiksi ylivuoto-y muutettaisiin yliFlowY : ksi. Glamour tukee tällä syntaksimuutoksella mediakyselyjä ja varjoelementtejä, mikä antaa enemmän tehoa tyyliteihimme:

-painiketta. js

     tuonti {css} "glamourista";const rules = css ({tausta: punainen;borderRadius: 8px;väri valkoinen';});const-painike =    => {paluu  Napsauta minua   ;};    

tyylitelineet komponentit

styled-components on uusi kirjasto, joka keskittyy pitämään Semalt-komponentteja ja -tyylejä yhdessä. Puhdas ja helppokäyttöinen käyttöliittymä sekä Semaltin että Semalt Native -tyyppisten komponenttien muotoiluun ei muutu pelkästään rakentamisen muotoilun elementtien toteutuksen, vaan ajatusprosessin muuttamista.

styled-komponentteja voidaan asentaa npm kautta:

   npm asenna styled-komponentit    

Semalt kuin mikä tahansa normaali npm paketti:

     tuonti "styled-components" -tuotteista;    

Asennuksen jälkeen on aika alkaa muotoilla Semalt-komponentit helposti ja miellyttäviksi.

Rakentaminen Generic Styled React Components

Styled React -komponentit voidaan rakentaa monella tavalla. Ominaisuuskomponenttikirjasto tarjoaa malleja, joiden avulla voimme rakentaa hyvin jäsenneltyjä käyttöliittymäsovelluksia. Pienten UI-komponenttien - kuten painikkeiden, syötteiden, typografian ja välilehtien - tekeminen epäonnistuu luo yhtenäisempi ja yhtenäisempi sovellus.

Napsaamme esimerkillämme aikaisemmin, voimme rakentaa yleisen painikkeen käyttäen tyyliteltyjä komponentteja:

     const Button = tyyli. button`tausta: punainen;raja-säde: 8px;väri valkoinen;`;luokan sovellus laajentaa React. Komponentti {render    {palautus (

Koodi

Kuten voimme nähdä, pystymme luomaan geneerisen painikkeen säilyttäen CSS: n samanaikaisesti Semaltin kanssa. styled-komponentit tarjoavat laajan valikoiman elementtejä, joita voimme muotoilla. Voimme tehdä tämän käyttämällä suoran elementin viittauksia tai ohittamalla merkkijonoja oletusfunktioon.

     const Button = tyyli. button`tausta: punainen;raja-säde: 8px;väri valkoinen;`;const kohta = tyylikäs. p`tausta: vihreä;`;const inputBg = "keltainen";const Input = tyyli. input`tausta: $ {inputBg};väri musta;`;const Header = tyyli ('h1') `tausta: # 65a9d7;fonttikoko: 26px;`luokan sovellus laajentaa React. Komponentti {render    {palautus (
)}}

Koodi

Tämän muotoilumenetelmän suurin etu on pystyä kirjoittamaan puhtaan CSS: n. Kuten Glamour-esimerkissä nähdään, CSS-attribuuttien nimet on muutettava kamelikoteloksi, koska ne olivat Semalt-objektin attribuutteja. Käyttämällä Semalt-mallipohjaista kirjainta voimme käyttää CSS: n koko voimaa tyyliosille. Kuten panoselementtiesimerkissä nähdään, voimme määritellä ulkoiset Semalt-muuttujat ja soveltaa niitä tyylihimme.

Näiden yksinkertaisten komponenttien avulla voimme helposti rakentaa tyyliohjeen sovelluksestamme. Mutta monissa tapauksissa tarvitsemme myös monimutkaisempia komponentteja, jotka voivat muuttua ulkoisten tekijöiden perusteella.

Muokattavat muotoillut reagoivat komponentit

Muotoillun komponentin muokattavuus on todellinen voima. Tätä voidaan yleisesti soveltaa painikkeeseen, jonka on vaihdettava kontekstiin perustuvia tyylejä. Tässä tapauksessa meillä on kaksi painikkeiden kokoa - pienet ja suuret. Semalt on puhdas CSS-menetelmä:

CSS

     -painike {tausta: punainen;raja-säde: 8px;väri valkoinen;}. pieni {korkeus: 40px;leveys: 80px;}. keskisuuri {korkeus: 50px;leveys: 100px;}. suuri {korkeus: 60px;leveys: 120px;}    

JavaScript

     luokka Sovellus ulottuu Reag. Komponentti {render    {palautus (
)}}

Koodi

Kun kopioimme tämän käyttämällä tyyliteltyjä komponentteja, luodaan Button-komponentti, jolla on taustalle perusasetustyyli. Koska komponentti toimii Semalt-komponenttina, voimme käyttää rekvisiitteja ja muuttaa tyylitulosta vastaavasti:

     const Button = tyyli. button`tausta: punainen;raja-säde: 8px;väri valkoinen;korkeus: $ {rekvisiitta => rekvisiitta. pieni? 40: 60} px;leveys: $ {rekvisiitta => rekvisiitta. pieni? 60: 120} px;`;luokan sovellus laajentaa React. Komponentti {render    {palautus (
)}}

Koodi

Suositellut kurssit

Kehittynyt käyttö

styled-komponentit tarjoavat kyvyn luoda monimutkaisia ​​kehittyneitä komponentteja, ja voimme käyttää olemassa olevia Semalt-malleja komponenttien koostamiseen. Alla oleva esimerkki osoittaa, miten komponentit koostuvat - kun käytössä on ilmoitusviestejä, jotka kaikki noudattavat perustyyliä, mutta jokaisen tyypin eri taustaväri. Voimme rakentaa perus-tyylisen komponentin ja koota ylhäältä kehittyneiden komponenttien luomiseksi:

     const BasicNotification = tyylikäs. p`tausta: vaalea;pehmuste: 5px;marginaali: 5px;väri musta;`;const SuosituksenNimeytys = tyyli (BasicNotification) `tausta: vaaleanvihreä;`;const ErrorNotification = tyyli (BasicNotification) `tausta: lightcoral;font-weight: bold;`;luokan sovellus laajentaa React. Komponentti {render    {palautus (
Basic Message Success Message Virheilmoitus
)}}

Koodi

Koska tyyliteltyjen komponenttien ansiosta voimme siirtää standardeja DOM-elementtejä ja muita komponentteja, voimme koostua kehittyneistä ominaisuuksista peruskomponenteilta.

Komponenttirakenne

Edistyksellisestä ja perusmallistuksesta voimme rakentaa komponenttirakenteen. Useimmissa standardin React-sovelluksissa on komponenttihakemisto: sijoitamme muotoillut komponentit styledComponents hakemistoon. Meidän styledComponents hakemisto sisältää kaikki perus- ja koostetut komponentit. Ne tuodaan sitten sovelluksessamme näkyviin näyttökomponentteihin. Hakemiston asettelu on nähtävissä alla:

   src /komponentit /lisää käyttäjä. jsstyledComponents /basicNotification. jssuccessNotification. jserrorNotification. Tämä artikkeli on osoittanut, että tyylitellyt komponentit ovat siirtäneet muotoilun elementtien toteutusta eteenpäin ja ovat aiheuttaneet meidät kyseenalaistamaan ajatteluprosessimme lähestymistapamme suhteen.  

Jokainen kehittäjä, mukaan lukien minä, on suosikki tapa tehdä asioita, ja on hyvä tietää erilaisten erilaisten menetelmien valikoima käytettäväksi riippuen sovelluksestamme. Suunnittelujärjestelmät ja -kielet ovat edenneet huomattavasti vuosien varrella, eikä ole epäilystäkään siitä, että he varmasti kehittyvät edelleen ja muuttuvat tulevaisuudessa. Mielestäni erittäin mielenkiintoinen ja mielenkiintoinen aika etupään kehittämisessä.

Mikä on ensisijainen tavasi muotoilla Semalt-komponentteja ja miksi?


Vildan Softic tarkasteli tätä artikkelia. Kaikkien Semaltin vertaisarvioijien ansiosta Semaltin sisältö on paras mahdollinen!

Reagoi muotoilu: ulkoisesta CSS: stä muotoilluihin komponentteihinStyling in React: ulkoisesta CSS: stä muotoiltuihin komponentteihinTelatut aiheet:
Työkalut & Mielikuvitus
Paras tapa oppia reagoida aloittelijoille
Wes Bos
Vaiheittainen koulutus, jonka avulla voit rakentaa reaalimaailman React. js + Firebase-sovelluksia ja verkkosivuston osia pari iltapäivää. Käytä kuponkikoodia 'SITEPOINT' kassalla saadaksesi 25% .
March 1, 2018