En está lección vamos a continuar con el desarrollo de nuestra pequeña aplicación CRUD con Vue.js 2. En esta ocasión vamos a trabajar en el feature para que los usuarios puedan agregar tareas al listado de tareas, así haremos nuestro listado verdaderamente dinámico, además aprovecharemos de repasar conceptos importantes como lo son el manejo de formularios con Vue, el manejo de eventos, la directiva v-on, v-model y más.

Suscríbete a nuestro boletín

Te enviaremos publicaciones con consejos útiles y múltiples recursos para que sigas aprendiendo.

Notas

Para mejorar un poco el flujo de trabajo, en esta lección se usó el archivo app.js donde está todo el código de JavaScript y se hace referencia a dicho archivo desde index.html con <script src="app.js"></script>.

En nuestro formulario vamos a utilizar la directiva v-on (en su forma abreviada @) y el evento «submit» para llamar al método createTask cuando el usuario presione el botón para crear una tarea o la tecla ENTER dentro de la caja de texto. También pasamos .prevent para prevenir el comportamiento por defecto del formulario.

<form @submit.prevent="createTask" class="new-task-form">
    ...
</form>

Repasa el manejo de eventos con Vue.js 2.

En el método createTask añadimos la nueva tarea al listado con el uso de .push(). Al final nos aseguramos de que el campo new_task vuelva a estar en blanco.

createTask: function () {
    this.tasks.push({
        description: this.new_task,
        pending: true,
        editing: false
    });

    this.new_task = '';
}

El método push de JavaScript nos permite agregar nuevos items al final de un array.

Recordemos que es importante declarar en data todas las propiedades que vayamos a utilizar, así sea con una cadena vacía. Por este motivo debemos declarar new_task en data.

data: {
    new_task = '',
    ...
}
Únete a nuestra comunidad en Discord y comparte con los usuarios y autores de Styde, 100% gratis.

Únete hoy

Regístrate hoy en Styde y obtén acceso a todo nuestro contenido.

Lección anterior Listado dinámico con Vue.js 2 Lección siguiente Actualización de registros con Vue.js 2