Métodos y la directiva v-on en Vue js
Así como se puede configurar una propiedad data dentro de una instancia de vue también tenemos otra propiedad importante:
Methods
Esta propiedad nos permite declarar funciones que pueden ser invocadas
dentro de una plantilla gracias al uso de la directiva v-on.
1 | <div id="app"> |
La directiva acepta como string el nombre de algún método creado en nuestra propiedad methods.
Pasar parámetros a un método usando v-on
En el ejemplo anterior simplemente indicamos el nombre del método, pero
imaginemos que queremos pasar algún parámetro desde nuestro template al método, tendríamos que enviar el parámetro tal como cuando invocamos un método en el javascript de toda la vida.
1 | <div id="app"> |
Accediendo a información del evento
Cuando se genera un evento en javascript siempre se incluye información del mismo en un objeto. En Vue también podemos acceder a este usando una variable especial llamada \$event.
1 | <div id="app"> |
También podemos hacer una combinación de parámetros:
1 | <div id="app"> |
Por último cuando a v-on solo le indicamos el nombre del método vue envía por defecto todos los parámetros existentes de ese evento. Eso quiere decir que al hacer esto:
1 | <div id="app"> |
Ya podremos acceder a la variable \$event en nuestro método:
1 | new Vue({ |
Si el evento click enviara más parámetros también lo tendríamos disponible en la definición de nuestro método.
Accediendo a data desde los métodos
Dentro de los métodos podemos acceder a cualquier variable definida en nuestro objeto data usando this más el nombre de la variable que deseamos usar.
1 | <div id="app"> |
También podemos asignar valores a las variables como lo haríamos con cualquier variable en javascript.
1 | <div id="app"> |
Aunque vimos los ejemplos usando el evento click vue soporta cualquier evento del DOM
Alias @
Para ahorrarnos algunos caractéres existe una forma corta de referenciar a un método usando v-on mediante el símbolo @
1 | <div id="app"> |
Esto cubre lo básico sobre los métodos en Vue, nunca está de más leer la documentación para ahondar en este y otros conceptos. 🚀