Botón para eliminar de un array de objetos en Vue
Ahora implementemos un botón para eliminar datos de un array de objetos. Empecemos con la implementación. Supongamos que tenemos el siguiente array:
data() {
return {
users: [
{
id: 1,
name: 'name1',
surn: 'surn1',
},
{
id: 2,
name: 'name2',
surn: 'surn2',
},
{
id: 3,
name: 'name3',
surn: 'surn3',
},
]
}
}
Mostremos el contenido del array en forma de lista:
<template>
<ul>
<li v-for="user in users" :key="user.id">
{{ user.name }}
{{ user.surn }}
</li>
</ul>
</template>
Hagamos en cada elemento de la lista un botón
para eliminar. En este botón vincularemos
un método, cuyo parámetro pasaremos
el id del elemento del array
que vamos a eliminar:
<template>
<ul>
<li v-for="user in users" :key="user.id">
{{ user.name }}
{{ user.surn }}
<button @click="removeItem(user.id)">eliminar</button>
</li>
</ul>
</template>
Implementemos la eliminación en el método removeItem:
methods: {
removeItem: function(id) {
this.users = this.users.filter((user) => {
return user.id !== id;
})
}
}
Se da el siguiente array con datos de trabajadores:
data() {
return {
users: [
{
id: 1,
name: 'name1',
salary: 100,
age: 30,
},
{
id: 2,
name: 'name2',
salary: 200,
age: 40,
},
{
id: 3,
name: 'name3',
salary: 300,
age: 50,
},
],
}
}
Muestre los datos de los trabajadores en forma de tabla HTML. Haga una columna con enlaces para eliminar trabajadores.