Estado y reactividad
Estado Basado en Objetos
Este tipo de estado permite agrupar varias propiedades relacionadas dentro de una sola estructura reactiva.
Ejemplo
Actualizar la edad de una persona guardada dentro de un objeto.
Vuereactive
<script setup lang="ts">
import { reactive } from 'vue';
const user = reactive({
name: 'Alex',
age: 28,
});
function incrementAge() {
user.age++;
}
</script>
<template>
<button @click="incrementAge">
{{ user.name }}: {{ user.age }}
</button>
</template>
Usa reactive para agrupar varias propiedades relacionadas dentro de un mismo objeto reactivo.
ReactuseState
import { useState } from 'react';
function UserCard() {
const [user, setUser] = useState({
name: 'Alex',
age: 28,
});
function incrementAge() {
setUser({
...user,
age: user.age + 1,
});
}
return (
<button onClick={incrementAge}>
{user.name}: {user.age}
</button>
);
}
Guarda el objeto completo con useState y crea una nueva copia al actualizar una de sus propiedades.
Angularsignal
import { Component, signal } from '@angular/core';
@Component({
selector: 'app-user-card',
standalone: true,
template: `
<button (click)="incrementAge()">
{{ user().name }}: {{ user().age }}
</button>
`
})
export class UserCardComponent {
user = signal({
name: 'Alex',
age: 28,
});
incrementAge() {
this.user.update((currentUser) => ({
...currentUser,
age: currentUser.age + 1,
}));
}
}
Guarda el objeto en un signal y genera un nuevo objeto al actualizar una de sus propiedades.
