Entrada
Deixe-me começar. Tínhamos uma interface monolítica com uma grande herança. Os serviços residiam nos mesmos arquivos com os componentes. Tudo estava misturado com o slogan na fachada: "Deixe tudo à mão - é mais fácil encontrar o que você precisa". E não importa se o tamanho do arquivo é de mais de 200, 300, 500 ou mais linhas de código.
Finalidade
Torne tudo mais legível, menor e mais rápido.
Implementação
Separar tudo o que é possível em arquivos e a bala de ouro aqui é o princípio de responsabilidade exclusiva. Se tivermos um componente e funções puras dentro de um arquivo, nós os separaremos.
Com o advento do ES6 +, tornou-se possível usar a importação ... da sintaxe - esse é um ótimo recurso, porque também podemos usar a exportação ... da .
Refatoração
Imagine um arquivo com esta estrutura:
Podemos dividir esse código em arquivos da seguinte maneira:
Estrutura:
utils multiply.js sum.js calculateSomethingSpecial.js
e arquivos:
Agora podemos importar as funções individualmente. Mas com linhas extras e esses nomes longos nas importações, ainda parece horrível.
Mas, para isso, temos um recurso maravilhoso que apareceu com o advento da nova sintaxe JS, chamada reexportação (reexportação). Na pasta, precisamos criar um arquivo index.js para combinar todas as nossas funções. E agora podemos reescrever nosso código desta maneira:
Podshamanim App.js ligeiramente:
Feito.
Teste.
Agora vamos verificar como nossas compilações Webpack são construídas para produção. Vamos criar um pequeno aplicativo React para testar como ele funciona. Verificaremos se baixamos apenas o que precisamos ou tudo o que é indicado no index.js da pasta utils .
Aplicação:
Versão de produção do aplicativo:
Como você pode ver acima, nós carregamos apenas a função sum dos utils .
Vamos verificar novamente e, desta vez, usaremos a multiplicação .
Aplicação:
Versão de produção do aplicativo:
Aqui nem vemos as funções dentro do código, porque o Webpack compilou nosso valor antes mesmo da implantação.
Teste final
Então, vamos executar nosso teste final e usar todos os recursos de uma só vez para ver se tudo funciona.
Aplicação:
Versão de produção do aplicativo:
Ótimo! Tudo funciona como esperado. Você pode tentar qualquer etapa usando o link para codesandbox e sempre pode implantar diretamente para netlify a partir daí.
Conclusão
Use a separação do código em partes menores, tente se livrar de arquivos, funções e componentes muito complexos. Você ajudará o futuro você e sua equipe. Arquivos menores são mais rápidos de ler, mais fáceis de entender, mais fáceis de manter, mais rápidos para compilar, mais fáceis de armazenar em cache, mais rápidos de baixar etc.
Obrigado pela leitura! Código limpo e refatoração deliciosa!