window.pipedriveLeadboosterConfig = { bas: 'leadbooster-chat.pipedrive.com', företagId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2, } ;(funktion () { var w = fönster if (w.LeadBooster) { console.warn('LeadBooster finns redan') } annars { w.LeadBooster = { q: [], on: funktion (n, h) { this.q.push({ t: "o", n: n, h: h }) }, trigger: funktion (n) { this.q.push({ t: 't', n: n }) }, } } })() Varför ska man använda SCSS istället för Styled Components? - The Codest
Codest
  • Om oss
  • Tjänster
    • Utveckling av programvara
      • Frontend-utveckling
      • Backend-utveckling
    • Staff Augmentation
      • Frontend-utvecklare
      • Backend-utvecklare
      • Dataingenjörer
      • Ingenjörer inom molntjänster
      • QA-ingenjörer
      • Övriga
    • Det rådgivande
      • Revision och rådgivning
  • Industrier
    • Fintech & bankverksamhet
    • E-commerce
    • Adtech
    • Hälsoteknik
    • Tillverkning
    • Logistik
    • Fordon
    • IOT
  • Värde för
    • VD OCH KONCERNCHEF
    • CTO
    • Leveranschef
  • Vårt team
  • Fallstudier
  • Vet hur
    • Blogg
    • Möten
    • Webbinarier
    • Resurser
Karriär Ta kontakt med oss
  • Om oss
  • Tjänster
    • Utveckling av programvara
      • Frontend-utveckling
      • Backend-utveckling
    • Staff Augmentation
      • Frontend-utvecklare
      • Backend-utvecklare
      • Dataingenjörer
      • Ingenjörer inom molntjänster
      • QA-ingenjörer
      • Övriga
    • Det rådgivande
      • Revision och rådgivning
  • Värde för
    • VD OCH KONCERNCHEF
    • CTO
    • Leveranschef
  • Vårt team
  • Fallstudier
  • Vet hur
    • Blogg
    • Möten
    • Webbinarier
    • Resurser
Karriär Ta kontakt med oss
Pil tillbaka GÅ TILLBAKA
2021-10-05
Utveckling av programvara

Varför ska man använda SCSS istället för Styled Components?

Codest

Jacek Ludzik

Produktdesigner

Under de senaste månaderna har jag arbetat med ett projekt för en av våra kunder. När jag var i början stod jag inför ett val av bibliotek för styling.

Efter att ha jämfört populära lösningar som vanlig CSS, Emotion, SCSS och Stylade komponentervalde jag till slut den sista. Allt verkade vara bra. Det har ett mycket populärt bibliotek nuförtiden, vilket innebär
det finns redan ett stort samhälle så om jag skulle möta några problem, hittar jag förmodligen en lösning någonstans på Stack Overflow eller GitHub. Förutom det, Stylade komponenter har vissa optimeringsfunktioner som innebär att de bara renderar när de behövs. De projekt förväntades byggas med hjälp av React och Typescript. Det här biblioteket har bra stöd för båda teknikerna. Låter fantastiskt, eller hur?

Jag började koda då. Efter en månad, när appen har vuxit, har frontend Team och jag fokuserade på att leverera funktioner, upptäckte vi att den fantastiska Stylade komponenter biblioteket hade sitt eget mål och jag ska berätta varför.

Först av allt, namnkonventionen. För att särskilja Stylade komponenter från React-komponenter var jag tvungen att använda Stylad prefix som minskade kod läsbarhet. Sedan (vilket kanske är konstigt), stöd för Typescript. Stylade komponenterär, som du kanske vet, baserade på CSS-in-JS-metoden. Detta innebär att du kan skicka vilken prop som helst till dem och ändra stilen på, dvs. inmatningen baserat på denna prop och jag tycker personligen att den här funktionen är fantastisk. I Typescript bör du också implementera typen av denna prop gör det kod längre någon Stylad komponent. "Men det skulle ju ta 5 sekunder till, så vad är problemet", kanske du säger. Du har rätt, även om när appen skalas upp snabbt och antalet komponenter är
ökar, kan dessa 5 sekunder lätt multipliceras med hundratals gånger. Ett annat problem är placeringen av Stylade komponenter.

Några JS-utvecklare placerar dem i samma fil som den komponent de tillhör, medan andra skapar separata filer för dem. Båda tillvägagångssätten är bra av många skäl. Det beror mest på hur komplex komponenten är. Att följa en av dessa tekniker kan upprätthålla sammanhållningen men att slå samman dem ger precis motsatsen. Vi övergav CSS-in-JS-metoden och migrerade till SCSS. Det var inte lätt och snabbt men med lite hjälp så klarade vi det. Vi började styla html-taggar enligt BEM-metoden och lade naturligtvis stilarna i separata filer, en per komponent. Jag sa att passera JS props till Stylade komponenter är en fantastisk funktion, men i SCSS det är omöjligt. Jag tror också att vi alla är överens om att den syntax som React vill använda för att koda villkorliga klasser är hemsk.

kod för react-klassnamn

Det finns en ganska intressant lösning. Om du kopplar ihop BEM-metoden med clsx bibliotek, får du något liknande detta (stort tack till min vän Przemek Adamczyk för att du visade mig detta bibliotek)

clsx-kod

Ser mycket renare ut, tycker du inte?

Det bästa är att du bara behöver skriva in villkorsvariabeln på komponentnivå och
inte på stylingnivå. Det sparar verkligen tid. Tyvärr har en sådan lösning sina nackdelar.
SCSS är enkelt och användarvänligt, men var försiktig när du använder det med Next.js. Detta ramverk gör inte
gör det möjligt att importera stilfiler direkt till komponentfilen (endast CSS-moduler).

Om du föredrar en fil per komponent måste du skapa index.scss som innehåller alla dina SCSS filer och
importera den till _app.tsx fil. Det enda problemet är att du manuellt måste importera varje SCSS fil som du har skapat. I React finns dock inte detta problem och du kan importera SCSS filer var du vill. Missförstå mig inte. Stylade komponenter är riktigt bra. Som jag sa tidigare är passering av JS-variabler samt det globala temat fantastiska funktioner. När du bygger en stor app där optimering är avgörande kommer det här biblioteket förmodligen att uppfylla dina behov. I vårt fall skulle dock migreringen till SCSS slå jackpotten.

Sammanfattningsvis

Sammanfattningsvis, även om det finns giltiga argument för både SCSS och Styled Components i webbutveckling Det slutgiltiga beslutet beror på flera olika faktorer. SCSS erbjuder en mer välbekant syntax för erfarna utvecklare i traditionell CSS och ger en sömlös integration med befintliga kodbaser och komponentbibliotek .

Å andra sidan.., Stylade komponenter erbjuda förbättrad erfarenhet som utvecklare med sin förmåga att kapsla in stilar i komponenter och förenkla stylingprocessen. Det främjar också kodmodularitet och återanvändbarhet, vilket gör det möjligt för frontend-ingenjörer att effektivt hantera komponentkatalog och skapa ett konsekvent användargränssnitt i hela webbapp . Med tanke på betydelsen av Användardata säkerhet och prestanda är det viktigt att bedöma hur de båda metoderna påverkar den slutliga paketstorleken och laddningstiderna. I slutändan är valet mellan SCSS och Styled Components bör baseras på de specifika behoven i projektet, kompetensen hos de personer som utvecklingsteam och de övergripande målen för webbapplikation . Det är tillrådligt för utvecklare att utvärdera alla faktorer, hålla sig uppdaterade genom Blogginlägg och branschdiskussioner, och fatta ett välgrundat beslut som överensstämmer med deras projektkrav och förbättrar den övergripande utvecklingsprocess för front-end .

Relaterade artiklar

Utveckling av programvara

Jämförelsen av mästarna: Angular vs Vue

För närvarande finns det några frontend-ramverk som används ofta och ständigt utvecklas av dess skapare, var och en något annorlunda än den andra. Och ändå kan de ha något gemensamt. Här har vi...

Oliwia Oremek

Prenumerera på vår kunskapsbas och håll dig uppdaterad om expertisen från IT-sektorn.

    Om oss

    The Codest - Internationellt mjukvaruutvecklingsföretag med teknikhubbar i Polen.

    Förenade kungariket - Huvudkontor

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

    Polen - Lokala tekniknav

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

      Codest

    • Hem
    • Om oss
    • Tjänster
    • Fallstudier
    • Vet hur
    • Karriär
    • Ordbok

      Tjänster

    • Det rådgivande
    • Utveckling av programvara
    • Backend-utveckling
    • Frontend-utveckling
    • Staff Augmentation
    • Backend-utvecklare
    • Ingenjörer inom molntjänster
    • Dataingenjörer
    • Övriga
    • QA-ingenjörer

      Resurser

    • Fakta och myter om att samarbeta med en extern partner för mjukvaruutveckling
    • Från USA till Europa: Varför väljer amerikanska startup-företag att flytta till Europa?
    • Jämförelse av Tech Offshore Development Hubs: Tech Offshore Europa (Polen), ASEAN (Filippinerna), Eurasien (Turkiet)
    • Vilka är de största utmaningarna för CTO:er och CIO:er?
    • Codest
    • Codest
    • Codest
    • Privacy policy
    • Användarvillkor för webbplatsen

    Copyright © 2025 av The Codest. Alla rättigheter reserverade.

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