Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Componentes globais x locais?

Pessoal, estou começando a utilizar Vue.js com .NET core e estou com uma dúvida na organizacao de componentes. Nas aulas criamos o componente de botao e em cada tela que queriamos utilizar nosso componente de botao tinhamos que importa-lo. Neste caso, nao faria sentido termos apenas um import desse componente apenas no main.js e deixa-lo disponível para qualquer parte da aplicação utiliza-lo, sem ter que importa-lo toda vez? Faz sentido?

Outra dúvida, quando importamos um módulo (botao por exemplo) em dois lugares diferentes, o webpack otimiza o bundle de alguma maneira para nao gerar o codigo dos componentes duas vezes?

Obrigado!

3 respostas

Olá. Marcelo.

Faz sentido sim deixar apenas no main se sua aplicação utiliza o componente em todos as views.

Cara, eu nunca estudei a fundo como o webpack trabalha, mas pela minha experiência com ele, meu chute seria que ele não faz esse tipo de otimização.

solução!

Oi Marcelo!

Componetizar tem como premissa deixar claro os componentes que um componente depende.

Por isso você cada componente exicitamente importa suas dependências.

Fica claro para quem lê seu código as dependências daquele componente e isso ajuda nos testes do componente, apesar deu não ter abordado isso nos cursos.

Qualquer coisa globalmente definida gera incerteza no seu código. Aliás em programação até mesmo o escopo global deve ser evitado quando possivel.

Pense numa classe em c# do .net. a ideia de import é a mesma.

Sendo assim, pela manutenção e legibilidade do seu código o boa prática é fazer como você aprendeu.

Sobre não repetir, quem vai garantir isso ou não é a configuração do webpack que o Vue usa, não o Vue em si. Webpack é esperto e provavelmente o Vue CLI faz bom uso dele. Pois ele suporta esse comportamento de não repetir. Webpack é o bundle mais sofisticado do planeta!

Sucesso e bom estudo meu aluno!

Obrigado pessoal, explicadíssimo!