The Codest
  • Chi siamo
  • Servizi
    • Sviluppo di software
      • Sviluppo Frontend
      • Sviluppo backend
    • Staff Augmentation
      • Sviluppatori Frontend
      • Sviluppatori backend
      • Ingegneri dei dati
      • Ingegneri del cloud
      • Ingegneri QA
      • Altro
    • Consulenza
      • Audit e consulenza
  • Industrie
    • Fintech e banche
    • E-commerce
    • Adtech
    • Tecnologia della salute
    • Produzione
    • Logistica
    • Automotive
    • IOT
  • Valore per
    • CEO
    • CTO
    • Responsabile della consegna
  • Il nostro team
  • Case Studies
  • Sapere come
    • Blog
    • Incontri
    • Webinar
    • Risorse
Carriera Contattate
  • Chi siamo
  • Servizi
    • Sviluppo di software
      • Sviluppo Frontend
      • Sviluppo backend
    • Staff Augmentation
      • Sviluppatori Frontend
      • Sviluppatori backend
      • Ingegneri dei dati
      • Ingegneri del cloud
      • Ingegneri QA
      • Altro
    • Consulenza
      • Audit e consulenza
  • Valore per
    • CEO
    • CTO
    • Responsabile della consegna
  • Il nostro team
  • Case Studies
  • Sapere come
    • Blog
    • Incontri
    • Webinar
    • Risorse
Carriera Contattate
Freccia indietro TORNA INDIETRO
2021-10-05
Sviluppo di software

Perché usare SCSS invece dei componenti con stile?

The Codest

Jacek Ludzik

Progettista di prodotti

Negli ultimi due mesi ho lavorato a un progetto per uno dei nostri clienti. Quando ero all'inizio, mi sono trovato di fronte alla scelta della libreria per lo styling.

Dopo aver confrontato le soluzioni più diffuse, come i semplici CSS, Emotion, SCSS e Componenti in stileAlla fine ho selezionato l'ultimo. Tutto sembrava andare bene. Ha una libreria molto popolare al giorno d'oggi, il che significa che
c'è già una grande comunità, quindi se dovessi incontrare qualche problema, probabilmente troverei una soluzione da qualche parte su Stack Overflow o GitHub. Oltre a questo, Componenti in stile hanno alcune funzioni di ottimizzazione, il che significa che eseguono il rendering solo quando è necessario. Il progetto era previsto che venisse costruito usando React e Typescript. Questa libreria offre un ottimo supporto per entrambe le tecnologie. Sembra fantastico, vero?

A quel punto ho iniziato a codificare. Dopo un mese, quando l'applicazione è cresciuta, il front-end squadra e io ci siamo concentrati sulla fornitura di funzionalità, abbiamo scoperto che l'incredibile Componenti in stile La biblioteca ha avuto un autogol e vi spiego perché.

Prima di tutto, la convenzione di denominazione. Per differenziare Componenti in stile da componenti React, ho dovuto usare il Stile prefisso che è diminuito codice leggibilità. E poi (cosa forse strana), il supporto di Typescript. Componenti in stilecome forse sapete, si basano sull'approccio CSS-in-JS. Ciò significa che è possibile passare qualsiasi oggetto ad essi e cambiare lo stile, cioè l'input, in base a questo oggetto e personalmente penso che questa caratteristica sia fantastica. In Typescript, si dovrebbe anche implementare il tipo di questo oggetto, in modo da rendere più lungo il codice di ogni Componente stilizzato. "Ma ci vorrebbero altri 5 secondi, quindi qual è il problema?", si potrebbe dire. Avete ragione, anche se quando l'applicazione scala velocemente e il numero di componenti è
aumentando, questi 5 secondi possono essere facilmente moltiplicati per centinaia di volte. Un altro problema è il posizionamento del Componenti in stile.

Alcuni Sviluppatori JS li inseriscono nello stesso file del componente a cui appartengono, mentre altri creano file separati per loro. Entrambi gli approcci sono validi per molte ragioni. Dipende soprattutto dalla complessità del componente. Seguendo una di queste tecniche si può mantenere la coesione, ma unendole si ottiene esattamente il contrario. Abbiamo abbandonato l'approccio CSS-in-JS e siamo migrati a SCSS. Non è stato facile e veloce, ma con un po' di aiuto ce l'abbiamo fatta. Abbiamo iniziato a stilizzare i tag html secondo la metodologia BEM e, naturalmente, abbiamo inserito gli stili in file separati, uno per componente. Ho detto che il passaggio di oggetti JS a Componenti in stile è una funzione fantastica, ma in SCSS è impossibile. Penso che siamo tutti d'accordo sul fatto che la sintassi con cui React vuole codificare le classi condizionali è pessima.

codice dei nomi delle classi di react

Esiste una soluzione piuttosto interessante. Se si collega la metodologia BEM con la metodologia clsx si otterrà qualcosa di simile a questo (un grande ringraziamento al mio amico Przemek Adamczyk per avermi mostrato questa libreria)

codice clsx

Sembra molto più pulito, non credete?

La cosa migliore è che è sufficiente digitare la variabile di condizione a livello di componente e
non a livello di stile. In questo modo si risparmia davvero tempo. Purtroppo, questa soluzione ha i suoi svantaggi.
SCSS è semplice e amichevole, ma bisogna fare attenzione quando lo si usa con Next.js. Questo framework non
permettono di importare i file di stile direttamente nel file del componente (solo i moduli CSS).

Se si preferisce un file per ogni componente, è necessario creare index.scss contenente tutti i vostri SCSS e
importarlo nella cartella _app.tsx file. L'unico problema è che è necessario importare manualmente ogni file SCSS creato. Nell'React, invece, questo problema non esiste e si può importare il file SCSS file dove si vuole. Non fraintendetemi. Componenti in stile sono davvero ottimi. Come ho già detto, il passaggio di variabili JS e il tema globale sono caratteristiche sorprendenti. Quando si costruisce un'applicazione di grandi dimensioni in cui l'ottimizzazione è fondamentale, questa libreria probabilmente soddisferà le vostre esigenze. Nel nostro caso, però, la migrazione a SCSS ha vinto il jackpot.

Riassunto

In conclusione, sebbene vi siano validi argomenti a favore di entrambi SCSS e componenti stilizzati in sviluppo web La decisione finale dipende da diversi fattori. SCSS offre una sintassi più familiare per sviluppatori esperti in CSS tradizionali e fornisce una perfetta integrazione con i sistemi di basi di codice e librerie di componenti .

D'altra parte, Componenti in stile offrire una maggiore esperienza di sviluppatore con la sua capacità di incapsulare gli stili all'interno dei componenti e di semplificare il processo di styling. Promuove inoltre la modularità e la riutilizzabilità del codice, consentendo agli ingegneri di front-end di gestire in modo efficiente la directory dei componenti e creare un'interfaccia utente coerente in tutto il applicazione web . Considerando l'importanza di dati utente sicurezza e prestazioni, è fondamentale valutare l'impatto di entrambi gli approcci sulle dimensioni finali del bundle e sui tempi di caricamento. In definitiva, la scelta tra SCSS e componenti stilizzati dovrebbe essere basata sulle esigenze specifiche del progetto, sulle competenze del team di sviluppo e gli obiettivi generali del progetto applicazione web . È consigliabile che gli sviluppatori valutino tutti i fattori, restino aggiornati tramite post sul blog e le discussioni di settore, e prendere una decisione informata che sia in linea con i requisiti del progetto e che migliori l'insieme del progetto. processo di sviluppo front-end .

Articoli correlati

Sviluppo di software

Il confronto tra i campioni: Angular vs Vue

Attualmente esistono alcuni framework per frontend comunemente utilizzati e costantemente sviluppati dai loro creatori, ognuno leggermente diverso dall'altro. Eppure, potrebbero avere qualcosa in comune. Ecco...

Oliwia Oremek

Iscrivetevi alla nostra knowledge base e rimanete aggiornati sulle competenze del settore IT.

    Chi siamo

    The Codest - Società internazionale di sviluppo software con centri tecnologici in Polonia.

    Regno Unito - Sede centrale

    • Ufficio 303B, 182-184 High Street North E6 2JA
      Londra, Inghilterra

    Polonia - Poli tecnologici locali

    • Parco uffici Fabryczna, Aleja
      Pokoju 18, 31-564 Cracovia
    • Ambasciata del cervello, Konstruktorska
      11, 02-673 Varsavia, Polonia

      The Codest

    • Casa
    • Chi siamo
    • Servizi
    • Case Studies
    • Sapere come
    • Carriera
    • Dizionario

      Servizi

    • Consulenza
    • Sviluppo di software
    • Sviluppo backend
    • Sviluppo Frontend
    • Staff Augmentation
    • Sviluppatori backend
    • Ingegneri del cloud
    • Ingegneri dei dati
    • Altro
    • Ingegneri QA

      Risorse

    • Fatti e miti sulla collaborazione con un partner esterno per lo sviluppo di software
    • Dagli Stati Uniti all'Europa: Perché le startup americane decidono di trasferirsi in Europa
    • Confronto tra gli hub di sviluppo Tech Offshore: Tech Offshore Europa (Polonia), ASEAN (Filippine), Eurasia (Turchia)
    • Quali sono le principali sfide di CTO e CIO?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Condizioni di utilizzo del sito web

    Copyright © 2025 di The Codest. Tutti i diritti riservati.

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