80 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			80 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|   | --- | ||
|  | title: Declarative Rendering | ||
|  | localeTitle: Renderização Declarativa | ||
|  | --- | ||
|  | ## Instalação
 | ||
|  | 
 | ||
|  | Antes de começarmos, há algumas maneiras de usar o Vue.js, ou seja, via CDN e via instalação. Para uma primeira experiência, é mais fácil usar o CDN. | ||
|  | 
 | ||
|  | Para desenvolvimento, use isto: | ||
|  | 
 | ||
|  | ```html | ||
|  | 
 | ||
|  | <!-- development version, includes helpful console warnings -->  | ||
|  |  <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>  | ||
|  | ``` | ||
|  | 
 | ||
|  | Ao pular para a produção, esta: | ||
|  | 
 | ||
|  | ```html | ||
|  | 
 | ||
|  | <!-- production version, optimized for size and speed -->  | ||
|  |  <script src="https://cdn.jsdelivr.net/npm/vue"></script>  | ||
|  | ``` | ||
|  | 
 | ||
|  | Como mencionado anteriormente, você também pode instalar o `vue-cli` , mas isso não é recomendado para iniciantes. | ||
|  | 
 | ||
|  | ## Renderização Declarativa
 | ||
|  | 
 | ||
|  | O Vue.js é uma ótima ferramenta para criar páginas dinâmicas e uma primeira maneira de entrar tocar com isso é o que é chamado de renderização declarativa. | ||
|  | 
 | ||
|  | O uso do termo "declarativo" pretende endireitar esse conceito para linguagens declarativas, como SQL: você pede algo, não está implícito qualquer implementação. O Vue.js permite declarar quais dados você deseja processado, simplesmente como isso: | ||
|  | 
 | ||
|  | ```html | ||
|  | 
 | ||
|  | <div id="app">  | ||
|  |   {{ message }}  | ||
|  |  </div>  | ||
|  | ``` | ||
|  | 
 | ||
|  | ```javascript | ||
|  | let app = new Vue({  | ||
|  |   el: '#app',  | ||
|  |   data: {  | ||
|  |     message: 'Hello, world!'  | ||
|  |   }  | ||
|  |  });  | ||
|  | ``` | ||
|  | 
 | ||
|  | Com esses snipets, você está dizendo ao Vue para processar dinamicamente o que está armazenado dentro da variável de `message` . E a diversão: sempre que a `message` é alterada, O Vue.js consegue recarregar essa parte específica do DOM e você vê o mudança. | ||
|  | 
 | ||
|  | Se você quiser experimentar essa reatividade, abra o console e altere o valor de `app.message` para, digamos, `"Hello from console"` . Você notou a mudança na a página? | ||
|  | 
 | ||
|  | O `{{ ... }}` é a sintaxe desse comportamento: gerar o valor de uma variável ou de uma expressão. Por exemplo, este também é um uso válido e resultará em `hello` : | ||
|  | 
 | ||
|  | ```html | ||
|  | 
 | ||
|  | <div id="app">  | ||
|  |   {{ 1 < 2 ? "hello" : "goodbye" }}  | ||
|  |  </div>  | ||
|  | ``` | ||
|  | 
 | ||
|  | Há casos em que o que queremos é definir um atributo usando o aplicativo do Vue. variável. Você pode pensar que a mesma sintaxe se aplica, mas o Vue tem algo específico para isso, o que chamamos de "ligação". | ||
|  | 
 | ||
|  | ```html | ||
|  | 
 | ||
|  | <div id="app">  | ||
|  |   <a v-bind:href="dynamicLink">This link</a>  | ||
|  |  </div>  | ||
|  | ``` | ||
|  | 
 | ||
|  | ```javascript | ||
|  | let app = new Vue({  | ||
|  |   el: '#app',  | ||
|  |   data: {  | ||
|  |     dynamicLink: 'medium.freecodecamp.org'  | ||
|  |   }  | ||
|  |  }  | ||
|  | ``` | ||
|  | 
 | ||
|  | A sintaxe `v-bind` é o que o Vue.js chama de "diretiva". É uma maneira de definir um novo atributo para a tag que será manipulada pelo Vue - há mais diretivas, todas elas começam com `v-` . |