Refleja tu lógica mantenible con JavaScript
Clase 10 de 37 • Curso de Reactividad con Vue.js 3
Contenido del curso
Reactividad a profundidad
- 6

Paradigma reactivo: responsivo, resiliente y escalable
03:49 min - 7

Proxies: la clave de la reactividad Vue
06:29 min - 8

Creando tu primer mini framework reactivo
07:04 min - 9

Integrar Proxy para crear mini framework reactivo
06:06 min - 10

Refleja tu lógica mantenible con JavaScript
Viendo ahora - 11

Conceptos clave de reactividad: efectos, track y trigger
03:53 min - 12

Efectos trackers triggers: cómo Vue vincula datos
07:39 min
Templates de Vue.js
- 13
Templates de HTML en Vue.js: Mejores Prácticas Esenciales
00:21 min - 14

Estructura inicial de Platzy Commerce con Vue
06:52 min - 15

Expresiones JavaScript en templates Vue
06:49 min - 16

v-bind y clase reactiva en Vue.js
06:08 min - 17

v-show vs v-if en Vue: cuándo usar cada uno
08:53 min - 18

Directiva v-for para listas en Vue.js
08:14 min - 19

Eventos con v-on en templates de Vue
06:49 min
APIs internas de Vue.js
Segunda capa: componentes de Vue.js
- 25

Crear componentes reutilizables con Vue
06:56 min - 26

Cómo pasar datos de padre a hijo en Vue
14:13 min - 27
Creación de Componentes Personalizados en Aplicaciones Web
00:37 min - 28

Eventos personalizados en Vue: comunicar hijo a padre
04:27 min - 29

Eventos personalizados con Composition API
03:57 min - 30

Watchers en Vue Options API
08:53 min - 31

Watchers en Vue Composition API
08:19 min - 32

Computed properties vs watchers en Vue
05:17 min - 33

Computed en Vue Composition API
06:20 min - 34

Ciclos de vida en Vue: cuándo y cómo cargar datos
08:19 min - 35

Ciclos de vida en Composition API
06:03 min
Siguientes pasos
Aprende a usar Reflect para escribir código claro con proxies y sus trampas. Verás cómo implementar un P model que sincroniza el valor de un input con tu data, y cómo evitar errores frecuentes al modificar propiedades con la trampa de set. La prioridad: legibilidad y mantenimiento del código.
¿Qué es Reflect y por qué hace más legible el código con proxies?
Reflect es el “espejo” de las trampas de un Proxy: expone las mismas operaciones con una sintaxis explícita y ordenada. Así, en lugar de mezclar operadores o accesos directos, haces visible qué trampa ejecutas. Las listas de trampas en Proxy y en Reflect coinciden, por eso trabajan de la mano. La meta es clara: código legible antes que código “inteligente”.
¿Qué trampas existen y sus equivalentes en Reflect?
- Acceso a propiedad con get: explícitalo con
Reflect.get(target, name). - Escritura con set: usa
Reflect.set(target, name, value). - Borrado con deleteProperty: usa
Reflect.deleteProperty(target, prop). - Búsqueda con has: usa
Reflect.has(obj, prop). - Llamada con apply: evita la invocación directa y usa la trampa en Reflect para dejar clara la intención.
Idea clave: con Reflect sabes exactamente qué trampa se ejecuta, lo que hace el flujo más fácil de seguir.
¿Cómo crear un P model que sincronice inputs con data?
El P model vincula el valor del input con tu objeto de data. En el mount, se seleccionan los elementos con atributo "P model", se lee la propiedad a enlazar con getAttribute("P model") y se ejecuta la función P model pasando: el elemento, la información reactiva (el proxy) y el nombre de la propiedad.
¿Qué parámetros y efectos tiene P model?
- Parámetros:
element,targetyname. - Lectura inicial: el P model asigna al
valuedel input lo que haya entarget[name]. - Escritura reactiva: agrega un event listener de
inputy actualizadata[name]conelement.value.
Ejemplo de flujo básico:
// lectura
element.value = target[name]
// escritura
element.addEventListener('input', () => {
data[name] = element.value
})
Punto importante: el valor en pantalla cambia al escribir, pero si no reaccionas a los cambios, la presentación no se actualiza automáticamente. La reactividad se aborda después.
¿Cómo usar Reflect.get, Reflect.set y Reflect.has para evitar errores?
Al leer propiedades en trampas, usa Reflect.get(target, name) para dejar claro que ejecutas la trampa de get. Para borrar o buscar propiedades, Reflect.deleteProperty(...) y Reflect.has(...) hacen el código más predecible.
¿Qué error común resuelve Reflect en set?
- Problema: al modificar con set, a veces hay un
getimplícito y JavaScript espera unreturn. - Intento básico:
Reflect.set(target, name, value)puede seguir fallando si el objeto real a actualizar esdata. - Solución clara: usa
Reflect.set(data, name, value)dentro de la trampa de set. - Consejo: evitar
returnen setters como “parche”; lo ideal es usar Reflect para que la trampa haga la operación correcta.
Ejemplo orientativo de la trampa de set:
set(target, name, value) {
console.log('Modificando')
return Reflect.set(data, name, value)
}
¿Cómo mejorar la legibilidad del acceso y la búsqueda?
- Reemplaza accesos directos por
Reflect.get(target, name). - Cambia condiciones con operador
inporReflect.has(obj, prop). - Sustituye borrados con
delete obj.propporReflect.deleteProperty(obj, 'prop').
Ventaja: el flujo de lecturas, escrituras y borrados queda explícito, y es más simple de depurar y mantener.
¿Te gustaría comentar cómo enlazas tu data con la presentación o qué patrones de reactividad usas?