window.pipedriveLeadboosterConfig = { base: 'leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2, } ;(funktion () { var w = vindue if (w.LeadBooster) { console.warn('LeadBooster findes allerede') } else { w.LeadBooster = { q: [], on: function (n, h) { this.q.push({ t: 'o', n: n, h: h }) }, trigger: function (n) { this.q.push({ t: 't', n: n }) }, } } })() Hvorfor skal du bruge SCSS i stedet for stylede komponenter? - The Codest
Codest
  • Om os
  • Serviceydelser
    • Udvikling af software
      • Frontend-udvikling
      • Backend-udvikling
    • Staff Augmentation
      • Frontend-udviklere
      • Backend-udviklere
      • Dataingeniører
      • Cloud-ingeniører
      • QA-ingeniører
      • Andet
    • Det rådgivende
      • Revision og rådgivning
  • Industrier
    • Fintech og bankvirksomhed
    • E-commerce
    • Adtech
    • Sundhedsteknologi
    • Produktion
    • Logistik
    • Biler
    • IOT
  • Værdi for
    • ADMINISTRERENDE DIREKTØR
    • CTO
    • Leder af levering
  • Vores team
  • Casestudier
  • Ved hvordan
    • Blog
    • Møder
    • Webinarer
    • Ressourcer
Karriere Tag kontakt til os
  • Om os
  • Serviceydelser
    • Udvikling af software
      • Frontend-udvikling
      • Backend-udvikling
    • Staff Augmentation
      • Frontend-udviklere
      • Backend-udviklere
      • Dataingeniører
      • Cloud-ingeniører
      • QA-ingeniører
      • Andet
    • Det rådgivende
      • Revision og rådgivning
  • Værdi for
    • ADMINISTRERENDE DIREKTØR
    • CTO
    • Leder af levering
  • Vores team
  • Casestudier
  • Ved hvordan
    • Blog
    • Møder
    • Webinarer
    • Ressourcer
Karriere Tag kontakt til os
Pil tilbage GÅ TILBAGE
2021-10-05
Udvikling af software

Hvorfor skal du bruge SCSS i stedet for Styled Components?

Codest

Jacek Ludzik

Produktdesigner

I de sidste par måneder har jeg arbejdet på et projekt for en af vores kunder. Da jeg var helt i begyndelsen, stod jeg over for et valg af bibliotek til styling.

Efter at have sammenlignet populære løsninger som almindelig CSS, Emotion, SCSS og Stylede komponenterTil sidst valgte jeg den sidste. Alt så ud til at være i orden. Det har et meget populært bibliotek i dag, hvilket betyder
Der er allerede et stort fællesskab, så hvis jeg får problemer, finder jeg sikkert en løsning et eller andet sted på Stack Overflow eller GitHub. Men derudover.., Stylede komponenter har nogle optimeringsfunktioner, som betyder, at de kun gengives, når der er brug for det. De projekt forventedes at blive bygget ved hjælp af React og Typescript. Dette bibliotek har god understøttelse af begge teknologier. Det lyder fantastisk, ikke?

Så begyndte jeg at kode. Efter en måned, da appen var vokset, blev frontend'en hold og jeg fokuserede på at levere funktioner, fandt vi ud af, at den fantastiske Stylede komponenter Biblioteket havde sit eget mål, og jeg skal fortælle dig hvorfor.

Først og fremmest navnekonventionen. For at skelne mellem Stylede komponenter fra React-komponenter, var jeg nødt til at bruge Stylet præfiks, som faldt Kode læsbarhed. Og så (hvad der måske er mærkeligt), understøttelse af Typescript. Stylede komponenterer, som du måske ved, baseret på CSS-in-JS-tilgangen. Det betyder, at du kan sende en hvilken som helst prop til dem og ændre stilen på, dvs. input baseret på denne prop, og jeg synes personligt, at denne funktion er fantastisk. I Typescript bør du også implementere typen af denne prop, hvilket gør koden længere, hvis du har en Stylet komponent. "Men det ville tage 5 sekunder mere, så hvad er problemet?" - siger du måske. Du har ret, men når appen skaleres hurtigt op, og antallet af komponenter er
Når tiden øges, kan disse 5 sekunder nemt ganges med hundredvis af gange. Et andet problem er placeringen af Stylede komponenter.

Nogle JS-udviklere placerer dem i samme fil som den komponent, de hører til, og andre opretter separate filer til dem. Begge tilgange er gode af mange grunde. Det afhænger mest af komponentens kompleksitet. Hvis man følger en af disse teknikker, kan man bevare sammenhængen, men hvis man fletter dem sammen, får man præcis det modsatte. Vi droppede CSS-i-JS-tilgangen og migrerede til SCSS. Det var ikke nemt og hurtigt, men med lidt hjælp klarede vi det. Vi begyndte at style html-tags i BEM-metoden og lagde selvfølgelig styles i separate filer, en pr. komponent. Jeg sagde, at det at sende JS props til Stylede komponenter er en fantastisk funktion, men i SCSS det er umuligt. Jeg tror også, at vi alle er enige om, at den syntaks, som React vil bruge til at kode betingede klasser, er forfærdelig.

kode for react-klassenavne

Der er en ganske interessant løsning. Hvis du forbinder BEM-metoden med clsx bibliotek, får du noget i retning af dette (stor tak til min ven Przemek Adamczyk for at vise mig dette bibliotek)

clsx-kode

Det ser meget renere ud, synes du ikke?

Det bedste er, at du kun behøver at skrive betingelsesvariablen på komponentniveau og
ikke på stylingniveau. Det sparer virkelig tid. Desværre har sådan en løsning sine ulemper.
SCSS er nem og venlig, men vær forsigtig, når du bruger den med Next.js. Denne ramme gør ikke
gør det muligt at importere stilfiler direkte i komponentfilen (kun CSS-moduler).

Hvis du foretrækker en fil pr. komponent, skal du oprette index.scss der indeholder alle dine SCSS filer og
importere det til _app.tsx fil. Det eneste problem er, at du manuelt skal importere hver enkelt SCSS fil, du har oprettet. I React findes dette problem dog ikke, og du kan importere SCSS filer, hvor du vil. Misforstå mig ikke. Stylede komponenter er virkelig gode. Som jeg sagde før, er overførsel af JS-variabler samt det globale tema fantastiske funktioner. Når du bygger en stor app, hvor optimering er afgørende, vil dette bibliotek sandsynligvis opfylde dine behov. I vores tilfælde var det dog nødvendigt at migrere til SCSS fik jackpot.

Opsummering

Konklusionen er, at selv om der er gode argumenter for begge dele SCSS og stiliserede komponenter i webudvikling Den endelige beslutning afhænger af forskellige faktorer. SCSS tilbyder en mere velkendt syntaks for erfarne udviklere i traditionel CSS og giver en problemfri integration med eksisterende Kodebaser og komponentbiblioteker .

På den anden side, Stylede komponenter tilbyde forbedret udviklererfaring med sin evne til at indkapsle stilarter i komponenter og forenkle stylingprocessen. Det fremmer også kodens modularitet og genanvendelighed, hvilket gør det muligt for frontend-ingeniører effektivt at styre komponentkatalog og skabe en ensartet brugergrænseflade på tværs af web-app . I betragtning af vigtigheden af Brugerdata sikkerhed og ydeevne, er det afgørende at vurdere begge tilganges indvirkning på den endelige pakkestørrelse og indlæsningstiden. I sidste ende er valget mellem SCSS og stiliserede komponenter bør være baseret på projektets specifikke behov, medarbejdernes færdigheder og udviklingsteam og de overordnede mål for webapplikation . Det er tilrådeligt for udviklere at evaluere alle faktorer, holde sig opdateret gennem blogindlæg og branchediskussioner, og træffe en informeret beslutning, der er i overensstemmelse med deres projektkrav og forbedrer den overordnede front-end udviklingsproces .

Relaterede artikler

Udvikling af software

Sammenligningen af mestrene: Angular vs Vue

I øjeblikket er der et par frontend-frameworks, der bruges almindeligt og konstant udvikles af deres skabere, hver især lidt anderledes end den anden. Og alligevel har de måske noget til fælles. Her kan du se...

Oliwia Oremek

Tilmeld dig vores vidensbase, og hold dig opdateret om ekspertisen fra it-sektoren.

    Om os

    The Codest - International softwareudviklingsvirksomhed med tech-hubs i Polen.

    Storbritannien - Hovedkvarter

    • Kontor 303B, 182-184 High Street North E6 2JA
      London, England

    Polen - Lokale teknologiske knudepunkter

    • Fabryczna Office Park, Aleja
      Pokoju 18, 31-564 Kraków
    • Hjerneambassaden, Konstruktorska
      11, 02-673 Warszawa, Polen

      Codest

    • Hjem
    • Om os
    • Serviceydelser
    • Casestudier
    • Ved hvordan
    • Karriere
    • Ordbog

      Serviceydelser

    • Det rådgivende
    • Udvikling af software
    • Backend-udvikling
    • Frontend-udvikling
    • Staff Augmentation
    • Backend-udviklere
    • Cloud-ingeniører
    • Dataingeniører
    • Andet
    • QA-ingeniører

      Ressourcer

    • Fakta og myter om at samarbejde med en ekstern softwareudviklingspartner
    • Fra USA til Europa: Hvorfor beslutter amerikanske startups sig for at flytte til Europa?
    • Sammenligning af Tech Offshore-udviklingsknudepunkter: Tech Offshore Europa (Polen), ASEAN (Filippinerne), Eurasien (Tyrkiet)
    • Hvad er de største udfordringer for CTO'er og CIO'er?
    • Codest
    • Codest
    • Codest
    • Privacy policy
    • Vilkår for brug af hjemmesiden

    Copyright © 2025 af The Codest. Alle rettigheder forbeholdes.

    da_DKDanish
    en_USEnglish de_DEGerman sv_SESwedish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish arArabic it_ITItalian jaJapanese ko_KRKorean es_ESSpanish nl_NLDutch etEstonian elGreek da_DKDanish