10 dicas e truques para ajudar você a se tornar o melhor desenvolvedor do VueJS

Aqui está uma tradução gratuita do artigo " 10 dicas e truques para torná-lo um desenvolvedor VueJS melhor " de Dev.to. O autor nos falará sobre opções interessantes e úteis para o uso das ferramentas comuns do VueJS.


1. Introdução


Gosto muito de trabalhar com o VueJS e toda vez que faço isso, mergulho mais fundo em seus recursos e capacidades. Neste artigo, apresento a você 10 dicas e truques interessantes que você provavelmente não conhecia e tentarei ajudá-lo a se tornar o melhor desenvolvedor do VueJS.


Vamos deixar a sintaxe dos slots bonita


Com o lançamento do Vue 2.6, as abreviações de slots tornaram-se disponíveis, que podem ser usadas como eventos (por exemplo, a abreviação @click para v-on:click ) ou dois pontos para ligação de dados ( :src ). Se você possui, por exemplo, um componente de tabela, pode usar o seguinte recurso :


 <template> ... <my-table> <template #row="{ item }"> /* some content here. You can freely use 'item' here */ </template> </my-table> ... </template> 

$ on ('gancho:')


Esse é um recurso interessante que você pode usar se precisar definir um ouvinte de evento personalizado ou um plug-in de terceiros nos ganchos created ou mounted e removê-lo no gancho beforeDestroy para evitar vazamentos de memória. Usando $on('hook:') você pode definir ou remover um evento em apenas um hook.


 mounted() { const aThirdPartyPlugin = aThirdPartyPlugin() this.$on('hook:beforeDestroy', () => { aThirdPartyPlugin.destroy() }) } 

Adereços de validação


Talvez você já saiba que é possível validar seus adereços com valores primitivos, como String , Number ou Object . Mas você também pode criar um validador personalizado, por exemplo, para verificar uma matriz de strings:


 alertType: { validator: value => ['signup', 'login', 'logout'].includes(value) } 

Argumentos de diretiva dinâmica


Um dos recursos mais interessantes do VueJS 2.6 é a capacidade de determinar dinamicamente os argumentos da diretiva de componentes. Suponha que você tenha um componente de botão e deseje ouvir o evento Click sob certas condições e o evento DoubleClick em todos os outros casos. Aqui está um caso em que essa diretiva pode ser útil:


 <template> ... <aButton @[someEvent]="handleSomeEvent()"/> ... </template> <script> ... data(){ return{ ... someEvent: someCondition ? "click" : "dblclick" } }, methods:{ handleSomeEvent(){ // handle some event } } ... </script> 

E o que é realmente legal -> é que você pode aplicar esse modelo a atributos HTML dinâmicos, adereços e muito mais!


Reutilizando componentes para rotas semelhantes


Às vezes, você tem rotas diferentes que usam algum conjunto de componentes. Se você alternar entre essas rotas, por padrão, o componente comum não será redesenhado, porque o Vue reutilizará esse componente para obter melhor desempenho. Mas se você deseja redesenhar esses componentes, você pode definir a propriedade :key no Router-View-Component :


 <template> <router-view :key="$route.fullPath"></router-view> </template> 

Passe todos os adereços do componente pai para o filho


Esse é um recurso muito interessante para transmitir todos os objetos do componente pai para o componente filho. Este método é conveniente se, por exemplo, você usar o componente wrapper. Assim, em vez de passar todas as propriedades em sequência, você só precisa passar todas de uma vez:


 <template> <childComponent v-bind="$props"/> </template> 

Em vez disso:


 <template> <childComponent :prop1="prop1" :prop2="prop2" :prop3="prop3" :prop4="prop4" ... /> </template> 

Passar todos os ouvintes de evento do componente pai para o filho


Se você tiver um componente filho que não é raiz para o componente pai, poderá passar todos os ouvintes de evento de pai para filho desta maneira:


 <template> <div> ... <childComponent v-on="$listeners"/> ... </div> </template> 

Se o componente filho estiver na raiz do pai, você não precisará desse truque e todos os eventos estarão disponíveis por padrão.


$ createElement


Cada instância do Vue tem acesso por padrão ao $createElement , que cria e retorna nós virtuais. Isso pode ser usado, por exemplo, para usar a marcação em métodos que podem ser passados ​​para a diretiva v-html . Nos componentes funcionais, esse método está disponível como o primeiro argumento para a função render .


Usando JSX


A partir do Vue CLI 3 , o suporte a JSX apareceu por padrão. Agora você pode escrever seu código usando JSX (por exemplo, se estiver mais confortável após a reação), também pode ser mais conveniente, por exemplo, para escrever componentes funcionais. Se você ainda não estiver usando o Vue CLI 3 , poderá usar o babel-plugin-transform-vue-jsx para oferecer suporte ao JSX em seu projeto.


Modelo v personalizado


Por padrão, v-model é o que chamamos de açúcar sintático em @input e :value . Mas você pode especificar a propriedade do model no seu componente Vue e determinar qual evento e acessórios serão usados:


 export default: { model: { event: 'change', prop: 'checked' } } 

Conclusão


Espero ter podido lhe dar algumas dicas para ajudá-lo a se tornar o melhor desenvolvedor do VueJS.

Source: https://habr.com/ru/post/pt471212/


All Articles