1
resposta

Porque não utilizar o index para Excluir o projeto?

Porque não utilizar o index para Excluir o projeto sem precisar fazer um filter? No v-for de projetos posso pegar o index do projeto e passar para função exluir ao invés de mandar o projeto.id

<tr v-for="(projeto, index) in projetos" :key="projeto.id">
    <td>{{ projeto.id }}</td>
    <td>{{ projeto.nome }}</td>
    <td>
        <router-link :to="`/projetos/${projeto.id}`" class="button">
            <span class="icon is-small">
                <i class="fas fa-pencil-alt"></i>
            </span>
        </router-link>
        <button class="button ml-2 is-danger" @click="excluir(index)">
            <span class="icon is-small">
                <i class="fas fa-trash"></i>
            </span>
        </button>
    </td>
</tr>
  • Com o index na função excluir envio ele para a Mutation Excluir;
excluir(index: number) {
    this.store.commit('EXCLUI_PROJETO', index);
}
  • Com o index faço um simples state.projetos.splice(index, 1); sem ter que fazer um filter que utiliza muito mais recursos do que o splice que dela um item do array pelo index.

O que acha?

1 resposta

Olá José!

Agradeço por compartilhar sua dúvida sobre a exclusão de projetos utilizando o índice ao invés do projeto.id no Vue3.

A abordagem que você sugeriu, utilizando o índice do projeto no v-for e passando-o para a função excluir, é uma alternativa válida para excluir um projeto específico sem precisar fazer um filter.

No entanto, é importante ter em mente que ao utilizar o índice, você está assumindo que a ordem dos projetos no array projetos nunca será alterada. Caso ocorra alguma alteração na ordem dos projetos, a exclusão utilizando o índice pode excluir um projeto diferente do desejado.

Por exemplo, se você adicionar um novo projeto no início do array, o índice de todos os projetos subsequentes será alterado. Nesse caso, a exclusão utilizando o índice pode excluir um projeto errado.

Já ao utilizar o projeto.id, você garante que está excluindo o projeto correto, independentemente da ordem dos projetos no array.

Portanto, recomendo utilizar o projeto.id para garantir a exclusão correta do projeto desejado.

Espero ter esclarecido sua dúvida! Se tiver mais alguma pergunta, é só me dizer.

Espero ter ajudado e bons estudos!