The Codest
  • Sobre nós
  • Serviços
    • Desenvolvimento de software
      • Desenvolvimento de front-end
      • Desenvolvimento backend
    • Staff Augmentation
      • Programadores Frontend
      • Programadores de back-end
      • Engenheiros de dados
      • Engenheiros de nuvem
      • Engenheiros de GQ
      • Outros
    • Aconselhamento
      • Auditoria e consultoria
  • Indústrias
    • Fintech e Banca
    • E-commerce
    • Adtech
    • Tecnologia da saúde
    • Fabrico
    • Logística
    • Automóvel
    • IOT
  • Valor para
    • CEO
    • CTO
    • Gestor de entregas
  • A nossa equipa
  • Case Studies
  • Saber como
    • Blogue
    • Encontros
    • Webinars
    • Recursos
Carreiras Entrar em contacto
  • Sobre nós
  • Serviços
    • Desenvolvimento de software
      • Desenvolvimento de front-end
      • Desenvolvimento backend
    • Staff Augmentation
      • Programadores Frontend
      • Programadores de back-end
      • Engenheiros de dados
      • Engenheiros de nuvem
      • Engenheiros de GQ
      • Outros
    • Aconselhamento
      • Auditoria e consultoria
  • Valor para
    • CEO
    • CTO
    • Gestor de entregas
  • A nossa equipa
  • Case Studies
  • Saber como
    • Blogue
    • Encontros
    • Webinars
    • Recursos
Carreiras Entrar em contacto
Seta para trás VOLTAR
2021-10-05
Desenvolvimento de software

Por que razão deve utilizar SCSS em vez de componentes estilizados?

The Codest

Jacek Ludzik

Designer de produtos

Nos últimos dois meses, tenho estado a trabalhar num projeto para um dos nossos clientes. Quando estava a começar, deparei-me com uma escolha da biblioteca para o estilo.

Depois de comparar soluções populares, como CSS simples, Emotion, SCSS e Componentes com estiloPor fim, selecionei a última. Tudo parecia estar bem. Atualmente, tem uma biblioteca muito popular, o que significa
já existe uma grande comunidade, pelo que, se me deparar com algum problema, provavelmente encontrarei uma solução algures no Stack Overflow ou no GitHub. Para além disso, Componentes com estilo têm algumas caraterísticas de otimização, o que significa que só são apresentados quando são necessários. O projeto era esperado para ser construído utilizando React e Tipografia. Esta biblioteca tem um ótimo suporte para ambas as tecnologias. Parece fantástico, certo?

Nessa altura, comecei a programar. Passado um mês, quando a aplicação cresceu, o frontend equipa e eu concentrado em fornecer funcionalidades, descobrimos que o fantástico Componentes com estilo A biblioteca tinha o seu próprio objetivo e eu digo-vos porquê.

Em primeiro lugar, a convenção de nomes. Para diferenciar Componentes com estilo de componentes React, tive de utilizar o Com estilo prefixo que diminuiu código legibilidade. Depois (o que pode ser estranho), suporte Typescript. Componentes com estilocomo deves saber, são baseados na abordagem CSS-in-JS. Isto significa que se pode passar qualquer prop para eles e alterar o estilo, ou seja, o input com base nessa prop e, pessoalmente, acho que esta funcionalidade é espetacular. No Typescript, você também deve implementar o tipo dessa prop, o que torna o código mais longo que qualquer Componente estilizado. "Mas isso demoraria mais 5 segundos, então qual é o problema?" - pode dizer-se. Tem razão, embora quando a aplicação se expande rapidamente e o número de componentes é
aumentando, estes 5 segundos podem ser facilmente multiplicados por centenas de vezes. Outro problema é a colocação do Componentes com estilo.

Alguns Programadores JS colocam-nos no mesmo ficheiro com o componente a que pertencem, e outros criam ficheiros separados para eles. Ambas as abordagens são boas por muitas razões. Depende sobretudo da complexidade do componente. Seguir uma destas técnicas pode manter a coesão, mas fundi-las dá exatamente o contrário. Abandonámos a abordagem CSS-in-JS e migrámos para SCSS. Não foi fácil nem rápido, mas com uma pequena ajuda conseguimos. Começámos a estilizar as etiquetas html segundo a metodologia BEM e, claro, colocámos os estilos em ficheiros separados, um por componente. Eu disse que passar props JS para Componentes com estilo é uma funcionalidade fantástica, mas em SCSS é impossível. Penso que todos concordamos também que a sintaxe que o React pretende para codificar classes condicionais é horrível.

código de nomes de classes react

Bem, há uma solução bastante interessante. Se ligar a metodologia BEM com o clsx obterá algo como isto (um grande agradecimento ao meu amigo Przemek Adamczyk por me ter mostrado esta biblioteca)

código clsx

Parece muito mais limpo, não acha?

O melhor é que só tem de escrever a variável de condição ao nível do componente e
não ao nível do estilo. Poupa realmente tempo. Infelizmente, esta solução tem os seus contras.
SCSS é fácil e amigável, mas tenha cuidado ao usá-lo com Next.js. Esta estrutura não
permitem importar ficheiros de estilo diretamente para o ficheiro do componente (apenas módulos CSS).

Se preferir um ficheiro por componente, tem de criar index.scss contendo todos os seus SCSS ficheiros e
importá-lo para o _app.tsx ficheiro. O único problema é que tem de importar manualmente cada ficheiro SCSS ficheiro que criou. No entanto, no React, este problema não existe e é possível importar SCSS ficheiros onde quiser. Não me interpretem mal. Componentes com estilo são muito bons. Como já referi, a passagem de variáveis JS, bem como o tema global, são funcionalidades fantásticas. Quando se constrói uma grande aplicação onde a otimização é crucial, esta biblioteca irá provavelmente satisfazer as suas necessidades. No nosso caso, porém, a migração para SCSS acertar no jackpot.

Resumo

Em conclusão, embora existam argumentos válidos para ambos SCSS e componentes estilizados em desenvolvimento web A decisão final depende de vários factores. SCSS oferece uma sintaxe mais familiar para programadores com experiência no CSS tradicional e proporciona uma integração perfeita com as bases de código e bibliotecas de componentes .

Por outro lado, Componentes com estilo oferecer uma melhor experiência de programador com a sua capacidade de encapsular estilos em componentes e simplificar o processo de criação de estilos. Também promove a modularidade e a reutilização do código, permitindo que o front-end engenheiros para gerir eficazmente o diretório de componentes e criar uma IU em todo o aplicação web . Considerando a importância da dados do utilizador segurança e desempenho, é crucial avaliar o impacto de ambas as abordagens no tamanho final do pacote e nos tempos de carregamento. Em última análise, a escolha entre SCSS e componentes estilizados deve basear-se nas necessidades específicas do projeto, no conjunto de competências do equipa de desenvolvimento e os objectivos globais do aplicação web . É aconselhável que os programadores avaliem todos os factores, se mantenham actualizados através de publicações no blogue e os debates no sector, e tomar uma decisão informada que se alinhe com os requisitos do seu projeto e melhore a front-end processo de desenvolvimento .

Artigos relacionados

Desenvolvimento de software

A comparação dos campeões: Angular vs Vue

Atualmente, existem algumas estruturas de front-end utilizadas habitualmente e constantemente desenvolvidas pelos seus criadores, cada uma ligeiramente diferente da outra. E, no entanto, elas podem ter algo em comum. Aqui...

Oliwia Oremek

Subscreva a nossa base de conhecimentos e mantenha-se atualizado sobre os conhecimentos do sector das TI.

    Sobre nós

    The Codest - Empresa internacional de desenvolvimento de software com centros tecnológicos na Polónia.

    Reino Unido - Sede

    • Office 303B, 182-184 High Street North E6 2JA
      Londres, Inglaterra

    Polónia - Pólos tecnológicos locais

    • Parque de escritórios Fabryczna, Aleja
      Pokoju 18, 31-564 Cracóvia
    • Embaixada do Cérebro, Konstruktorska
      11, 02-673 Varsóvia, Polónia

      The Codest

    • Início
    • Sobre nós
    • Serviços
    • Case Studies
    • Saber como
    • Carreiras
    • Dicionário

      Serviços

    • Aconselhamento
    • Desenvolvimento de software
    • Desenvolvimento backend
    • Desenvolvimento de front-end
    • Staff Augmentation
    • Programadores de back-end
    • Engenheiros de nuvem
    • Engenheiros de dados
    • Outros
    • Engenheiros de GQ

      Recursos

    • Factos e mitos sobre a cooperação com um parceiro externo de desenvolvimento de software
    • Dos EUA para a Europa: Porque é que as empresas americanas decidem mudar-se para a Europa?
    • Comparação dos centros de desenvolvimento da Tech Offshore: Tech Offshore Europa (Polónia), ASEAN (Filipinas), Eurásia (Turquia)
    • Quais são os principais desafios dos CTOs e dos CIOs?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Website terms of use

    Direitos de autor © 2026 por The Codest. Todos os direitos reservados.

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