Logica de vista
Renderizado de Listas
El renderizado de listas permite generar elementos repetidos de la interfaz a partir de una colección de datos.
Ejemplo
Mostrar una lista de usuarios.
Vuev-for + :key
<script setup lang="ts">
const users = [
{ id: 1, name: 'Ada Lovelace', email: 'ada@example.com' },
{ id: 2, name: 'Alan Turing', email: 'alan@example.com' },
{ id: 3, name: 'Linus Torvalds', email: 'linus@example.com' },
]
</script>
<template>
<ul>
<li v-for="user in users" :key="user.id">
{{ user.name }} - {{ user.email }}
</li>
</ul>
</template>
Usa la directiva v-for para crear un elemento por cada dato y :key para identificarlo.
Reactmap() + key
function UserList() {
const users = [
{ id: 1, name: 'Ada Lovelace', email: 'ada@example.com' },
{ id: 2, name: 'Alan Turing', email: 'alan@example.com' },
{ id: 3, name: 'Linus Torvalds', email: 'linus@example.com' },
]
return (
<ul>
{users.map((user) => (
<li key={user.id}>{user.name} - {user.email}</li>
))}
</ul>
)
}
Recorre la colección con map() dentro de JSX y asigna una key a cada elemento generado.
Angular@for + track
import { Component } from '@angular/core'
@Component({
selector: 'app-user-list',
standalone: true,
template: `
<ul>
@for (user of users; track user.id) {
<li>{{ user.name }} - {{ user.email }}</li>
}
</ul>
`,
})
export class UserListComponent {
readonly users = [
{ id: 1, name: 'Ada Lovelace', email: 'ada@example.com' },
{ id: 2, name: 'Alan Turing', email: 'alan@example.com' },
{ id: 3, name: 'Linus Torvalds', email: 'linus@example.com' },
]
}
Usa el bloque @for para repetir el elemento y track para identificar cada dato.
