1. A Instância Vue (Introdução ao Vue.js)
Nesse tópico vamos aprender como usar o Vue para exibir dados em uma página web.
Se você caiu de paraquedas aqui, saiba que esse post faz parte de uma série de tópicos sobre como aprender os conceitos básicos do Vue.js criando um Gerador de Memes.
A Instância Vue
Nesse tópico vamos aprender como usar o Vue para exibir dados em uma página web.
Objetivo
Vamos adicionar o título de nossa aplicação.
Código inicial
- Para iniciar como qualquer projeto, sugiro que você crie uma pasta e dentro dela crie um arquivo chamado index.html
- Também dentro desta pasta crie outra chamada assets/js/ que vai ser o local onde vamos criar nosso arquivo main.js
- Dentro do nosso index.html vamos adicionar o seguinte código
No nosso arquivo main.js vamos adicionar uma variável chamada meme com o valor 'Dog Meme'
logo você vai entender o motivo.
Depois disso basta abrir no navegador para ver o resultado do html, e também já encontramos nosso primeiro empecilho.
Problema
Como eu exibo o valor da variável meme
do nosso arquivo javascript, no html usando o Vue.js?
Nós precisamos de alguma forma mostrar o valor da variável meme
dentro do <h1>
no nosso html, no lugar de Meme Name
.
Solução
O primeiro passo é incluir o script
do Vue no nosso projeto. Esse código você pode adicionar abaixo do <title>Meme Generator</title>
no nosso index.html
E no nosso main.js
vamos incluir a instância do Vue. Assim vamos substituir todo nosso código do main.js
pelo seguinte:
E assim usar a nossa primeira expressão JavaScript. {{ meme }}
substituindo ela no lugar do Meme Name no nosso h1
Resultado
Vamos ver o nome Dog
dentro de nossa tag <h1>.
Além disso, fechando nosso inspect do navegador e abrindo novamente depois de atualizar a página vamos ver que nossa extensão do Vue.js devtools está em funcionamento.
Ai você deve se perguntar…
WTF???
Então vamos por partes, vamos analisar nosso código do main.js
O que é a Instância Vue?
A instância Vue é a raiz de nossa aplicação. Ela é criada passando um objeto com suas opções. Nesse objeto tem uma variedade de propriedades opcionais que dão a instância a habilidade de armazenar dados e realizar ações.
Vamos ver aos poucos cada uma dessas propriedades.
Como é feita uma conexão com um elemento?
A instância Vue ela precisa ser conectada com um elemento de sua escolha, para formar um relacionamento entre a instância e uma parte do DOM.
To zuando não é esse Doom. É o (Document Object Model).
DOM — Document Object Model
Que é a representação de dados dos objetos que compõem a estrutura e o conteúdo de um documento na Web.
Em outras palavras, nós estamos ativando o Vue na div com o id app, colocando #app
, como o elemento (el) da nossa instância.
Resumindo você precisa fazer a conexão com algum elemento de sua página para que o Vue funcione.
Propriedade: data
Uma instância do Vue possui a propriedade data
para inserir os dados
Os dados da instância podem ser acessados dentro do elemento em que a instância está plugada.
Isso significa se você tentar usar a variável {{ meme }}
fora da div#app
no navegador ele não vai interpretar como um dado e vai exibir{{ meme }}
no lugar de 'Dog'
Expressão {{ }}
Se nós queremos que algum dado seja mostrado no html, é preciso adicionar as chaves duplas entre o valor a ser exibido.
Termo importante: Expression
- Expressões permitem utilizar valores existentes de dados, em conjunto com lógica para produzir novos valores de dados.
- Quando o Vue visualiza a expressão
{{ meme }}
, ele reconhece que nós estamos referenciando aos dados de sua instância. Então ele substitui aquela expressão com o seu devido valor. No nosso caso o nome do meme que é:"Dog"
.
Expressões JavaScript— outros exemplos
- No primeiro caso você pode usar um operador condicional ternário, se a variável
ok
estiver com o valortrue
vai retornarSIM
caso contrárioNÃO
- No segundo exemplo está chamando o método
toUpperCase()
que vai retornar o valor da variáveltitle
convertida para maiúscula - E no último vai realizar uma concatenação com o valor
firstName
com olastName
Isso quer dizer que você pode utilizar expressões JavaScript.
Vamos entender agora mais um conceito importante do Vue.js a:
Reatividade
- A razão do Vue ser capaz de mostrar o valor dos dados imediantamente é porque o Vue é reativo.
- Em outras palavras, os dados da instância estão interligados a cada local em que o dado está sendo referenciado.
Com isso finalizamos nossa primeira parte do Gerador de Memes. Além do mais, aprendemos algumas coisas.
1. A instância Vue — (O que aprendemos)
- Como começar a escrever uma aplicação Vue utilizando sua instância;
- Como exibir dados em uma página web;
- A instância Vue é a raiz de toda aplicação Vue;
- A instância Vue é conectada com um elemento do DOM;
- Os dados da instância Vue podem ser mostrados usando uma sintaxe de chaves duplas. Ex:
{{ title }}
; - Vue é reativo.
1º DESAFIO
Renomear a propriedade meme
do objeto data para title
, e alterar seu valor para: Meme Generator.
Depois de completar o desafio continue no próximo post.
Próximo post
2. Ciclo de Vida da Instância Vue (Introdução ao Vue.js)