lucbpz
@lucasbernalte
Lucas Bernalte es actualmente Front End developer en Kairós Digital Solutions. Viene del mundo Full Stack y aunque promete no dejar del todo el Back, ahora se centra en arquitecturas Front y se interesa por la programación funcional.
karoldesign
@kgrafico_
Actualmente trabaja como front-end en Kairos. Estudió Diseño Gráfico en la ESD Madrid y realizó el master de UX/UI en este mismo centro. Le apasiona todo lo relacionado con este mundo, desde que se crea un branding corporativo hasta que se despliega la aplicación.
Es un framework progresivo
Funcional, intuitivo y moderno
El dato como centro de todo
Orientado a componentes, es reactivo
Buena Performance (CLI)
Liviano (<60kb)
Orientado a componentes
Datos Uni-direccionales
HTML Tmpl
Scope css
JSX, TypeScript, SCSS etc...
Reactivo
El dato como centro de todo
El sistema de componentes es reactivo:
Sin fricción con otras librerías o recursos
Todo está en el sitio que tiene que estar
Si quieres añadir JSX o TypeScript hazlo
que tiene que estar
Una directiva se refiere a algunos atributos especiales, identificados con v-, indican a Vue.js que debe realizar ciertos cambios en un elemento del DOM.
Utiliza Virtual DOM para renderizar datos en el DOM. Así puede reaccionar de una forma eficiente ante varios cambios, y renderizando solamente la parte que cambia en lugar de todo el DOM.
<input v-model="message" placeholder="edit me">
<p>Message is: {{ message }}</p>
<div v-for="item in items" :key="item.id">
<!-- content -->
</div>
<button v-on:click="counter += 1">Add 1</button>
<button @click="greet">Greet</button>
Un ejemplo sería enfocarse en un elemento de entrada, como este:
// Register a global custom directive called `v-focus`
Vue.directive('focus', {
// When the bound element is inserted into the DOM...
inserted: function (el) {
// Focus the element
el.focus()
}
})
directives: {
focus: {
// directive definition
inserted: function (el) {
el.focus()
}
}
}
Vue también le permite registrar sus propias directivas personalizadas
<input v-focus>
Puedes usar el nuevo v-focus atributo en cualquier elemento, como este:
El objetivo de las propiedades computadas es manipular el modelo creando nuevas propiedades ANTES de renderizar.
A diferencia de la computada, un método es una function. Este se va a re-evaluar siempre, a diferencia de las computadas que se cachean.
Las expresiones en la plantilla son muy convenientes, pero están diseñadas para operaciones simples:
<div id="example">
{{ message.split('').reverse().join('') }}
</div>
<div id="example">
<p>Original message: "{{ message }}"</p>
<p>Computed reversed message: "{{ reversedMessage }}"</p>
</div>
var vm = new Vue({
el: '#example',
data: {
message: 'Hello'
},
computed: {
// a computed getter
reversedMessage: function () {
// `this` points to the vm instance
return this.message.split('').reverse().join('')
}
}
})
Es posible que haya notado que podemos lograr el mismo resultado al invocar un método en la expresión:
<p>Reversed message: "{{ reverseMessage() }}"</p>
// in component
methods: {
reverseMessage: function () {
return this.message.split('').reverse().join('')
}
}
La diferencia es que las propiedades computadas se almacenan en caché según sus dependencias reactivas.
Los componentes son una de las características más poderosas de Vue.
Son elementos personalizados a los que el compilador de Vue les añade comportamiento.
extendidos con el atributo especial is.
Crear una nueva instancia de Vue con:
new Vue({
el: '#some-element',
// opciones
})
Vue.component('my-component', {
// opciones
})
Para registrar un componente global, puedes utilizar Vue.component(tagName, options). Por ejemplo:
Forma de utilizarlo:
<my-component></my-component>
// registro
Vue.component('my-component', {
template: '<div>A custom component!</div>'
})
// crear la instancia principal
new Vue({
el: '#example'
})
Registro:
<div id="example">
<div>A custom component!</div>
</div>