# Introducción
Vue es considerado un framework progresivo, esto quiere decir, que es capaz de adaptarse al tamaño de cada proyecto a la perfección. Tanto así, que si estamos trabajando en una sencilla landing page no necesitamos descargar e instalar todo el core de Vue y su CLI; basta con utilzar su CDN en nuestro index.html y estamos listos para utilizar las herramientas básicas que nos ofrece vue para hacer nuestra página dinámica.
# CDN
<script src="https://unpkg.com/vue"></script>
# Instancia
var app = new Vue({
el: '#app’,
data: { // indica el <div> en el cual queremos utilizar vue class: `#app` o id: `.app`
mensaje: 'Hello World!' // hook mas importante, retorna las variables de nuestra instancia
}
})
# Ganchos de cliclo de vida
beforeCreate
created
beforeMount
mounted
beforeUpdate
updated
beforeDestroy
destroyed
# app.js
/**
* Aqui inicia nuestra instancia de Vue
*/
var app = new Vue({
el: '#app',
data: {
titulo: 'Bienvenido al curso de Vue JS 2'
},
methods: { // hook de declaración de metodos
mostrarTitulo() {
return 'Introducción a Vue js'
}
},
/** Ciclo de Vida
* Nos ayuda a manipular nuestro componente
* Desde trear informacion antes de que se carge el componente
* hasta provocar la destrucción del mismo manualmente
*/
beforeCreate() {
console.log('Antes de crear')
},
created() {
console.log('Creado')
// this.$destroy() // manera de llamar manualmente a un hook especifico. `$` indica que es no es un método propio
},
beforeMount() {
console.log('Antes de montar')
},
mounted() {
console.log('Montado')
},
beforeUpdate() {
console.log('Antes de actualizar')
},
updated() {
console.log('Actualizado')
},
beforeDestroy() {
console.log('Antes de destruir')
},
destroyed() {
alert('Bienvenido!')
console.log('Destruido')
}
}
}
# index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css" integrity="sha384-9gVQ4dYFwwWSjIDZnLEWnxCjeSWFphJiwGPXr1jddIhOegiu1FwO5qRGvFXOdJZ4" crossorigin="anonymous">
<!-- development version, includes helpful console warnings -->
<script src="https://unpkg.com/vue"></script>
<title>Introducción a Vue JS 2</title>
</head>
<body>
<div id="app">
<div class="container">
<div class="jumbotron">
<!-- Interpolacion de variables/funciones para
mostrar su valor como un string -->
<h3>{{ mostrarTitulo() }}</h3>
</div>
</div>
</div>
<!-- Importa el archivo de JavaScript -->
<script src="app.js"></script>
</body>
</html>