Guia intermediário de Vue.js

Guia intermediário de Vue.js

E aí! Se você já domina o básico do Vue.js e quer dar aquele upgrade no seu conhecimento, está no lugar certo!

Vamos deixar essa coisa de iniciante pra trás e partir para o nível intermediário, que é onde a coisa começa a ficar mais séria.

Antes de tudo, já está familiarizado/a?

Antes de prosseguirmos com este artigo sobre Vue.js intermediário, é importante verificar se você já está familiarizado/a com o básico.

Se você ainda não explorou o mundo do Vue.js, sugiro que leia meu artigo Criando sua primeira aplicação no Vue.js, disponível aqui mesmo na Revelo Community. Lá, você encontrará informações sobre a configuração do ambiente, mercado de trabalho e as vantagens de usar o Vue.js, além de uma introdução a linguagem.

Esse artigo que mencionei também aborda tópicos básicos, como: Execução do projeto, criação do componente principal e teste de interatividade mínimo.

Sintaxe Intermediária do Vue.js

Aprender a sintaxe intermediária do Vue.js é fundamental para expandir suas habilidades de desenvolvimento, essa camada da linguagem fornece recursos avançados para criar componentes dinâmicos e interativos em seus aplicativos web e isso permitirá que você crie soluções personalizadas e otimizadas para atender às necessidades de seus projetos.

Neste artigo abordaremos os seguintes temas: Comunicação entre componentes, Uso de mixins e extensões, construção de aplicativos multi-idioma e trabalhando com APIs.

Com isso em mente, vamos avançar para o nível intermediário e explorar mais a fundo seus recursos e todo seu potencial!

Comunicação entre componentes

No Vue.js, um aplicativo é construído por meio da composição de diferentes componentes. Cada componente representa uma parte específica da interface do usuário e possui sua própria lógica e comportamento. Porém, para que o aplicativo funcione corretamente, é necessário que esses diferentes componentes se comuniquem entre si.

Existem diferentes maneiras de realizar a comunicação entre componentes no Vue.js. Alguns dos principais métodos incluem:

  • Props: A comunicação por meio de ‘props’ é uma das formas mais simples e comuns de se comunicar entre componentes no Vue.js. Por meio do uso deles, um componente pode passar dados para um componente filho. Esses dados são definidos como propriedades no componente filho, permitindo que ele acesse e utilize esses dados em sua renderização.
  • Eventos personalizados: Outra maneira comum de se comunicar entre componentes no Vue.js é por meio de eventos personalizados. Neles, um componente pode emitir um evento que outros componentes podem escutar e responder. Isso permite que os diferentes componentes do aplicativo interajam uns com os outros e respondam às mudanças no estado do aplicativo.
  • Slots: Os slots são outra maneira de permitir a comunicação entre componentes no Vue.js. Por meio dos slots, um componente pode passar outros componentes como filhos, permitindo que o componente pai envolva o conteúdo do filho em sua própria estrutura.
  • Gerenciamento de estado centralizado: Por fim, o gerenciamento de estado centralizado, realizado por meio da biblioteca Vuex, é uma maneira mais avançada de permitir a comunicação entre componentes no Vue.js. Com o Vuex, é possível compartilhar o estado do aplicativo entre diferentes componentes, permitindo que eles acessem e modifiquem esse estado de maneira centralizada.

Aqui está um exemplo simples de como utilizar eventos personalizados para realizar a comunicação entre componentes no Vue.js:


Acima, no componente pai, podemos emitir um evento personalizado e passar dados como parâmetro.

Observe que estamos emitindo um evento personalizado ‘counter-incremented’ quando o botão é clicado no componente filho ‘ChildComponent’. Esse evento será capturado pelo componente pai ‘ParentComponent’ e a função ‘handleCounterIncrement’ será executada.


Acima, no componente filho, podemos criar um método para emitir o evento personalizado.

Observe que estamos emitindo um evento personalizado ‘counter-incremented’ quando o botão é clicado no componente filho ‘ChildComponent’.

Com isso, estamos realizando a comunicação entre componentes por meio da emissão de eventos personalizados. O componente filho está emitindo um evento quando o botão é clicado e o componente pai está capturando esse evento e executando uma função para atualizar o valor do contador.

Uso de mixins e extensões

Um mixin é um objeto que contém opções de componente que podem ser mescladas em outro componente. Isso permite compartilhar lógica comum entre componentes diferentes sem precisar duplicar o código. Por exemplo, podemos ter um mixin que define um método para exibir um diálogo de confirmação e usar esse mixin em vários componentes diferentes que precisam exibir um diálogo de confirmação.

As extensões são semelhantes aos mixins, mas em vez de um objeto, é uma função que recebe o objeto de opções do componente e retorna um novo objeto de opções. Isso permite adicionar ou modificar as opções do componente em tempo de execução.

Quando usamos um mixin ou uma extensão, o código é adicionado ao componente que o usa. Isso significa que as opções do mixin ou da extensão são mescladas com as opções do componente em tempo de criação. Isso permite que o componente tenha acesso a todas as opções definidas no mixin ou na extensão, como métodos, propriedades e ganchos do ciclo de vida.

Uma das vantagens de usar mixins e extensões é que eles permitem separar a lógica do componente em módulos menores e mais fáceis de entender e manter. Isso torna o código mais organizado e modular, facilitando a reutilização de funcionalidades comuns em outros componentes.

Abaixo vou mostrar um exemplo simples de como usar um mixin em um componente Vue.js:


Neste exemplo, criamos um mixin ‘myMixin’ que define uma propriedade ‘message’ no objeto data que é mesclado no componente ‘my-component’ usando a opção mixins. Isso permite que o componente tenha acesso à propriedade ‘message’ definida no mixin.

No entanto, se tentarmos acessar a propriedade ‘message’ na instância Vue principal (fora do componente), ela não estará definida, já que o mixin é aplicado apenas ao componente que a referência.

Construção de aplicativos multi-idioma

Antes de começar a construir um aplicativo multi-idioma, é importante definir o idioma padrão do aplicativo. Isso pode ser feito configurando a propriedade ‘lang’ na tag ‘html’ da página ou por meio de uma opção na instância Vue.

Após essa etapa, é necessário adicionar suporte a outros idiomas, isso pode ser feito através de várias bibliotecas de tradução e localização que podem ser usadas para adicionar suporte a vários idiomas em um aplicativo Vue.js, sendo as mais comuns:

  • vue-i18n: uma biblioteca de tradução e localização oficialmente suportada pelo Vue.js. Ele suporta vários idiomas e pode ser usado tanto em aplicativos de página única quanto em aplicativos de várias páginas.
  • vuex-i18n: uma extensão do Vuex que adiciona suporte a vários idiomas ao seu aplicativo Vue.js. Ele fornece uma API simples para definir e alternar entre vários idiomas.
  • vue-multilanguage: outra biblioteca de tradução e localização para aplicativos Vue.js. Ele suporta vários idiomas e permite definir diferentes pacotes de idiomas para diferentes partes do seu aplicativo.

Depois de adicionar suporte a vários idiomas ao seu aplicativo Vue.js, você precisará definir as traduções para cada idioma que deseja suportar. Isso geralmente é feito em arquivos de idioma separados que são importados para o seu aplicativo.

As bibliotecas de tradução e localização mencionadas acima fornecem APIs simples para definir traduções e alternar entre diferentes idiomas. Por exemplo, com a biblioteca vue-i18n, você pode definir traduções em um arquivo de idioma JavaScript separado e, em seguida, usá-las em seu aplicativo por meio de filtros ou diretivas personalizadas.

Abaixo segue um exemplo simples de como construir um aplicativo Vue.js que suporte múltiplos idiomas usando a biblioteca vue-i18n:


Neste exemplo, estamos definindo uma mensagem de boas-vindas em inglês e francês na variável ‘messages’. Em seguida, inicializamos o objeto i18n do VueI18n com o idioma padrão definido como inglês e as mensagens definidas na variável ‘messages’.

Dentro do template do componente, usamos a sintaxe $t() para exibir a mensagem de boas-vindas que será automaticamente traduzida de acordo com o idioma definido pelo objeto i18n.

Além disso, adicionamos um método ‘switchLanguage’ para permitir que o usuário mude o idioma do aplicativo, atualizando a propriedade ‘locale’ do objeto i18n.

Finalmente, para permitir que os usuários alternem entre diferentes idiomas em seu aplicativo Vue.js, você precisará fornecer uma maneira de fazer isso. Isso pode ser feito por meio de um menu suspenso ou outro controle de interface do usuário, que chama uma função para alternar entre os idiomas suportados.

Com as bibliotecas de tradução e localização mencionadas acima, você pode alternar entre idiomas com apenas algumas linhas de código. Por exemplo, com o vuex-i18n, você pode alternar entre idiomas chamando a mutação ‘setLocale()’.

Trabalhando com APIs

Trabalhar com APIs é uma das tarefas mais comuns em desenvolvimento web, e com Vue.js não é diferente. O Vue.js oferece algumas opções para realizar chamadas a APIs, que são as bibliotecas Axios e o Fetch API.

A biblioteca Axios é uma das mais populares para fazer requisições HTTP em JavaScript. É fácil de usar, suporta Promises e permite que você defina interceptores de requisição e resposta. O Axios funciona tanto no navegador quanto no servidor, o que é útil se você estiver trabalhando com renderização no lado do servidor.

Já o Fetch API é uma API nativa do navegador que também permite realizar requisições HTTP. É relativamente nova e ainda não é totalmente suportada em todos os navegadores, mas tem uma API bem simples e fácil de usar.

Para trabalhar com APIs em Vue.js, geralmente é recomendado criar um serviço que encapsule as chamadas HTTP, e injetá-lo nos componentes que precisam consumir esses dados. Isso torna o código mais organizado e reutilizável.

Aqui vai um exemplo de código que faz uma requisição a uma API usando o método ‘fetch()’ do JavaScript dentro de um componente Vue.js:


Neste exemplo, temos um componente Vue.js que exibe uma lista de posts obtidos a partir da API ‘https://jsonplaceholder.typicode.com/posts.’ O método ‘fetch()’ é usado para realizar a requisição e a resposta é convertida em um objeto JSON com o método .json(). Em seguida, o título da página e os posts são armazenados no objeto data do componente e exibidos na página através da diretiva v-for. Este é um exemplo simples, mas é possível construir aplicações complexas fazendo uso de APIs com Vue.js.

Com isso, concluo este guia! Fique atento ao próximo guia, há muito mais para aprender. É fundamental estudar e praticar regularmente para se tornar um desenvolvedor habilidoso em Vue.js.

Agora que você tem uma visão geral de alguns tópicos intermediários de forma aprofundada que precisam ser compreendidos, podemos avançar para o nível avançado no próximo artigo. O que você acha?

E você desenvolvedor, já criou algo usando o Vue.js? Já teve algum contato prévio com os assuntos deste guia?

💡
As opiniões e comentários expressos neste artigo são de propriedade exclusiva de seu autor e não representam necessariamente o ponto de vista da Revelo.

A Revelo Content Network acolhe todas as raças, etnias, nacionalidades, credos, gêneros, orientações, pontos de vista e ideologias, desde que promovam diversidade, equidade, inclusão e crescimento na carreira dos profissionais de tecnologia.