forum icon indicating copy to clipboard operation
forum copied to clipboard

Uso de mixins

Open caioincau opened this issue 7 years ago • 4 comments

Olá pessoal, legal a iniciativa do forum.

Mas bem, vamos lá, vocês tem algumas regras/boas práticas para o uso de Mixins? Como evitar acessar propriedades que não são dele e afins?

caioincau avatar Feb 02 '18 15:02 caioincau

Usamos bastante mixins e extends aqui. A motivação é sempre a mesma: reaproveitar lógica entre componentes.

O mixin tem acesso completo ao componente, e isso não é um problema, pelo contrário, deve ser utilizado a seu favor.

Imagine um componente de exibe seu conteúdo em um modal, modal é um outro componente que será usado. Você terá a mesma mecânica em vários componentes. Um mixin cai como uma luva para essas situações.

O mixin vai se encarregar de importar o componente modal, e adicionar métodos como open e close. Para ele fazer isso ele terá que acessar this.$refs.modal onde o componente que chama o mixin criou tal ref na template.

Ainda há outras inúmeras aplicações, o mixin pode ser uma função que gera comportamentos diferentes dependendo dos argumentos. O mixin pode ler this.$options do componente dentro do hook create e gerar inúmeros comportamentos... A coisa toda não para por aqui, pois é possível combinar mixins... o mesmo componente que usa um modal, pode usar um que altera o titulo da página, ou injeta funções de um serviço... consumir http...

São realmente inúmeras as possibilidades ... Escrevi este artigo sobre o tema: Herança e Composição com Vue.js pode ajudar mais.

vinicius73 avatar Feb 05 '18 12:02 vinicius73

Válido lembrar para tomar cuidado com mixins globais, pois afetam todas as instâncias do Vue

danielschmitz avatar Feb 05 '18 13:02 danielschmitz

Confesso que nunca usei mixins apesar de saber que eles existem, no exemplo do @vinicius73 ai eu criei um componente conteúdo pra fazer o que eu quiser.

Eu precisaria exercitar o uso de mixins pra eu ver a melhoria.

alexsandro-xpt avatar Feb 08 '18 12:02 alexsandro-xpt

Eu uso Mixin com frequência, só queria ver se o pessoal tentava evitar o uso em algum caso :P

caioincau avatar Feb 08 '18 16:02 caioincau