En esta lección del Curso de Vue.js 2 realizaremos el desarrollo de la funcionalidad faltante en nuestro pequeño módulo de CRUD: que es la de eliminar registros. Así que vamos a aprender cómo podemos eliminar registros de forma individual del listado o en lote basados en una condición (en nuestro ejemplo usaremos el estatus de la tarea).
Notas
En lecciones anteriores del curso de Vue.js 2 vimos cómo pasar el índice de un elemento con v-for. En esta lección haremos uso nuevamente de dicho feature:
<ul class="list-group tasks">
    <li v-for="(task, index) in tasks">...</li>
    ...
</ul>
Repasa la lección sobre listado de elementos con v-for
Una vez más hicimos uso de la directiva v-on y el evento «click» con @click. En esta ocasión para enlazar el método deleteTasks a nuestro icono de papelera. Esto nos permite eliminar tareas de nuestra lista:
<a @click="deleteTask(index)">
    <span class="glyphicon glyphicon-trash" aria-hidden="true"></span>
</a>
Repasa la lección sobre manejo de eventos en Vue.js
En nuestro objeto VM creamos el método deleteTask. Este método recibe el índice de nuestra tarea, y haciendo uso de este índice eliminamos la tarea del listado mediante el método splice().
deleteTask: function (index) {
    this.tasks.splice(index, 1);
}
El método splice() de JavaScript nos permite modificar el contenido de un Array, ya sea agregando nuevos elementos o eliminando elementos ya existentes.
Creamos un método llamado deleteCompleted que nos permitirá eliminar todas las tareas que ya se encuentran completadas. Haciendo uso del método filter sobre-escribimos nuestra lista de tareas (this.tasks), retornando solamente las tareas que todavía están pendientes:
deleteCompleted: function () {
    this.tasks = this.tasks.filter(function (task) {
        return task.pending;
    });
}
El método filter crea un nuevo Array con todos los elementos que cumplan la condición dada en la función callback.
Regístrate hoy en Styde y obtén acceso a todo nuestro contenido.
Lección anterior Actualización de registros con Vue.js 2 Lección siguiente Creación y uso de tu primer componente con Vue.js 2
