(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': data().getTime(),įvykis:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-5LHNRP9'); Kodėl turėtumėte naudoti SCSS vietoj stilizuotų komponentų? - The Codest
The Codest
  • Apie mus
  • Paslaugos
    • Programinės įrangos kūrimas
      • Priekinės dalies kūrimas
      • Galinės dalies kūrimas
    • Staff Augmentation
      • Priekinės dalies kūrėjai
      • Atgalinės versijos kūrėjai
      • Duomenų inžinieriai
      • Debesų inžinieriai
      • QA inžinieriai
      • Kita
    • Patariamoji tarnyba
      • Auditas ir konsultacijos
  • Pramonės šakos
    • Fintech ir bankininkystė
    • E-commerce
    • Adtech
    • Sveikatos technologijos
    • Gamyba
    • Logistika
    • Automobiliai
    • IOT
  • Vertė už
    • CEO
    • CTO
    • Pristatymo vadybininkas
  • Mūsų komanda
  • Case Studies
  • Sužinokite, kaip
    • Tinklaraštis
    • Susitikimai
    • Interneto seminarai
    • Ištekliai
Karjera Susisiekite su mumis
  • Apie mus
  • Paslaugos
    • Programinės įrangos kūrimas
      • Priekinės dalies kūrimas
      • Galinės dalies kūrimas
    • Staff Augmentation
      • Priekinės dalies kūrėjai
      • Atgalinės versijos kūrėjai
      • Duomenų inžinieriai
      • Debesų inžinieriai
      • QA inžinieriai
      • Kita
    • Patariamoji tarnyba
      • Auditas ir konsultacijos
  • Vertė už
    • CEO
    • CTO
    • Pristatymo vadybininkas
  • Mūsų komanda
  • Case Studies
  • Sužinokite, kaip
    • Tinklaraštis
    • Susitikimai
    • Interneto seminarai
    • Ištekliai
Karjera Susisiekite su mumis
Atgal rodyklė GRĮŽTI ATGAL
2019-04-01
Programinės įrangos kūrimas

Kodėl turėtumėte naudoti SCSS vietoj stilizuotų komponentų?

The Codest

Jacekas Ludzikas

Produktų dizaineris

Pastaruosius porą mėnesių dirbau su vieno mūsų kliento projektu. Kai buvau pačioje pradžioje, susidūriau su bibliotekos stiliaus pasirinkimu.

Palyginę populiarius sprendimus, tokius kaip paprastas CSS, Emotion, SCSS ir Stilizuoti komponentai, galiausiai pasirinkau paskutinį. Viskas atrodė gerai. Šiuo metu ji turi labai populiarią biblioteką, o tai reiškia, kad
jau yra didelė bendruomenė, todėl jei susidurčiau su kokiomis nors problemomis, tikriausiai rasiu sprendimą kur nors Stack Overflow arba GitHub. Be to, Stilizuoti komponentai turi tam tikrų optimizavimo funkcijų, o tai reiškia, kad jie atvaizduojami tik tada, kai jų reikia. Svetainė projektas buvo tikimasi, kad jis bus sukurtas naudojant React ir Mašinraštis. Ši biblioteka puikiai palaiko abi technologijas. Skamba nuostabiai, tiesa?

Tada pradėjau programuoti. Po mėnesio, kai programėlė išaugo, priekinė dalis komanda ir aš sutelkėme dėmesį į funkcijų teikimą, sužinojome, kad nuostabus Stilizuoti komponentai biblioteka turėjo savo tikslą ir aš jums pasakysiu, kodėl.

Visų pirma, pavadinimų suteikimo tvarka. Norint atskirti Stilizuoti komponentai iš React komponentai, turėjau naudoti Stilizuota priešdėlis, kuris sumažėjo kodas skaitomumas. Tada (kas gali būti keista), Typescript palaikymas. Stilizuoti komponentai, kaip tikriausiai žinote, yra pagrįsti CSS-in-JS metodu. Tai reiškia, kad jiems galite perduoti bet kokį rekvizitą ir pagal jį pakeisti įvesties stilių, t. y. įvesties stilių, ir aš asmeniškai manau, kad ši funkcija yra nuostabi. Typescript, taip pat turėtumėte įgyvendinti šio rekvizito tipą daro jį kodas ilgiau bet Stilizuota sudedamoji dalis. “Bet tai užtruktų dar 5 sekundes, tad kokia jūsų problema?” - galite pasakyti. Esate teisus, nors kai programa greitai plečiasi ir komponentų skaičius yra
padidėjus, šias 5 sekundes galima lengvai padauginti šimtus kartų. Kita problema yra ta, kad Stilizuoti komponentai.

Kai kurie JS kūrėjai juos talpina į tą patį failą kartu su komponentu, kuriam jie priklauso, o kiti jiems sukuria atskirus failus. Abu būdai yra geri dėl daugelio priežasčių. Tai labiausiai priklauso nuo komponento sudėtingumo. Laikantis vieno iš šių metodų galima išlaikyti sanglaudą, tačiau juos sujungus gaunama visiškai priešinga nauda. Atsisakėme CSS-in-JS metodo ir perėjome prie SCSS. Nebuvo lengva ir greita, bet su nedidele pagalba mums pavyko. Pradėjome stiliuoti html žymas pagal BEM metodiką ir, žinoma, stilius sudėjome į atskirus failus, po vieną kiekvienam komponentui. Sakiau, kad perduodant JS rekvizitus Stilizuoti komponentai yra nuostabi funkcija, tačiau SCSS tai neįmanoma. Taip pat manau, kad visi sutinkame, jog sintaksė, kuria React nori koduoti sąlygines klases, yra siaubinga.

react klasių pavadinimų kodai

Na, yra vienas gana įdomus sprendimas. Jei BEM metodiką sujungsite su clsx biblioteką, gausite kažką panašaus į tai (didelis ačiū mano draugui Przemekui Adamczykui už tai, kad parodė man šią biblioteką)

clsx kodas

Atrodo daug švariau, ar ne?

Geriausia tai, kad komponento lygmenyje tereikia įvesti sąlygos kintamąjį ir
ne stiliaus lygiu. Tai tikrai taupo laiką. Deja, toks sprendimas turi ir trūkumų.
SCSS yra paprasta ir patogi, tačiau būkite atsargūs ją naudodami su Next.js. Šis karkasas neturi
leidžia importuoti stiliaus failus tiesiai į komponento failą (tik CSS modulius).

Jei pageidaujate vieno failo kiekvienam komponentui, turite sukurti index.scss kuriame yra visi jūsų SCSS failus ir
importuoti jį į _app.tsx failas. Vienintelė problema yra ta, kad turite rankiniu būdu importuoti kiekvieną SCSS sukurtą failą. Tačiau React sistemoje šios problemos nėra ir galite importuoti SCSS failus, kur tik norite. Nesupraskite manęs neteisingai. Stilizuoti komponentai yra tikrai geri. Kaip jau minėjau, JS kintamųjų perdavimas ir globali tema yra nuostabios funkcijos. Kai kuriate didelę programėlę, kurioje labai svarbu optimizuoti, ši biblioteka tikriausiai patenkins jūsų poreikius. Tačiau mūsų atveju perėjimas prie SCSS laimėti aukso puodą.

Apibendrinimas

Apibendrinant galima teigti, kad nors yra pagrįstų argumentų ir už SCSS ir stilizuoti komponentai svetainėje žiniatinklio kūrimas , galutinis sprendimas priklauso nuo įvairių veiksnių. SCSS siūloma geriau pažįstama sintaksė patyrę kūrėjai tradicinių CSS ir užtikrina sklandžią integraciją su esamais kodų bazės ir komponentų bibliotekos .

Kita vertus, Stilizuoti komponentai pasiūlyti patobulintą kūrėjo patirtis gebėjimu įkomponuoti stilius į komponentus ir supaprastinti stiliaus kūrimo procesą. Jis taip pat skatina kodo moduliaciją ir pakartotinį panaudojimą, todėl priekinės dalies inžinieriai efektyviai valdyti komponentų katalogas ir sukurti nuoseklią vartotojo sąsają visoje žiniatinklio svetainė programa . Atsižvelgiant į svarbą naudotojas duomenys saugumą ir našumą, labai svarbu įvertinti abiejų metodų poveikį galutiniam paketo dydžiui ir įkėlimo laikui. Galiausiai reikia pasirinkti tarp SCSS ir stilizuoti komponentai turėtų būti grindžiamas konkrečiais projekto poreikiais, darbuotojų įgūdžiais ir jų kompetencija. kūrimo komanda , ir bendri tikslai žiniatinklio programa . Kūrėjams patartina įvertinti visus veiksnius, nuolat atnaujinti tinklaraščio įrašai ir pramonės diskusijų ir priimti pagrįstą sprendimą, kuris atitiktų jų projekto reikalavimus ir pagerintų bendrą projekto kokybę. Front-end kūrimo procesas .

Susiję straipsniai

Programinės įrangos kūrimas

Čempionų palyginimas: Angular ir Vue

Šiuo metu yra keli dažniausiai naudojami ir kūrėjų nuolat tobulinami frontend karkasai, kurių kiekvienas šiek tiek skiriasi vienas nuo kito. Ir vis dėlto jie gali turėti kai ką bendro. Čia...

Oliwia Oremek

Prenumeruokite mūsų žinių bazę ir būkite nuolat informuoti apie IT sektoriaus patirtį.

    Apie mus

    The Codest - tarptautinė programinės įrangos kūrimo bendrovė, turinti technologijų centrus Lenkijoje.

    Jungtinė Karalystė - būstinė

    • 303B biuras, 182-184 High Street North E6 2JA
      Londonas, Anglija

    Lenkija - vietiniai technologijų centrai

    • Fabryczna biurų parkas, Aleja
      Pokoju 18, 31-564 Krokuva
    • Brain Embassy, Konstruktorska
      11, 02-673 Varšuva, Lenkija

    The Codest

    • Pagrindinis
    • Apie mus
    • Paslaugos
    • Case Studies
    • Sužinokite, kaip
    • Karjera
    • Žodynas

    Paslaugos

    • Patariamoji tarnyba
    • Programinės įrangos kūrimas
    • Galinės dalies kūrimas
    • Priekinės dalies kūrimas
    • Staff Augmentation
    • Atgalinės versijos kūrėjai
    • Debesų inžinieriai
    • Duomenų inžinieriai
    • Kita
    • QA inžinieriai

    Ištekliai

    • Faktai ir mitai apie bendradarbiavimą su išoriniu programinės įrangos kūrimo partneriu
    • Iš JAV į Europą: Kodėl Amerikos startuoliai nusprendžia persikelti į Europą?
    • Technikos plėtros centrų užsienyje palyginimas: Tech Offshore Europa (Lenkija), ASEAN (Filipinai), Eurazija (Turkija)
    • Kokie yra svarbiausi CTO ir CIO iššūkiai?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Website terms of use

    Autorinės teisės © 2026 The Codest. Visos teisės saugomos.

    lt_LTLithuanian
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish arArabic it_ITItalian es_ESSpanish nl_NLDutch etEstonian elGreek pt_PTPortuguese cs_CZCzech lvLatvian is_ISIcelandic lt_LTLithuanian