
¿Existe algo parecido en Angular a las computadas de Vue? Me explico, necesito saber si existen propiedades que de forma reactiva cambien cuando cambie una de las propiedades asociadas
Pongo un ejemplo, pongamos que en un componente tengo la variable count y quiero crear otra variable que se llame countDouble y que sea count * 2, de tal forma que cuando actualice en la vista la variable count (con un botón por ejemplo), también cambie la otra variable
Fijo que hay movidas con rxjs y observables, pero quiero ver si existe algo que sea más cómodo de escribir, en Vue por ejemplo haces
data: () => ({ count: 1 }), computed: { double() { return this.count * 2; } }
y listo, con eso ya es reactivo, cómodo de escribir
Me autocontesto, acabo de aprender que puedes crear un método en el componente que devuelva el cálculo de las variables que quieres, y desde la vista al llamarlo se actualiza si cambia una de sus variables.
Pensaba que pasaría como Vue, que si en la vista ejecutas un método del componente, una vez cargado en el DOM dejaría de ser reactivo y no se llamaría más, pero parece que Angular si que lo mantiene y lo vuelve a llamar si cambia una de sus variables, curioso
Dejo el proyecto en el que he estado probando esto
https://codesandbox.io/s/angular-11- playground-forked-0e8nzv?file=/src/app/app.component.ts:211-342
Vale soy gilipollas, estaba equivocado, en Vue 2 parece que si llamas a un método en la vista también se ejecuta solo si una de las variables cambia.
Pues llevo como 4 años pensando que los métodos en la vista se ejecutaban una vez y ya.
https://codesandbox.io/s/vue-2-playg round-forked-0wf4ww?file=/src/components/Swatches.vue:0-407
Entonces qué cojones, ¿para qué sirven las computadas? Te lias a crear métodos que devuelvan cosas y ale
Aunque por lo que leo, parece que si la referencia es directa si que actualiza, pero si en el método metes variables que a su vez se componen de otras, si cambian no ejecuta
¡Y hasta aquí mi hilo sobre reactividad en distintos frameworks!
Síganme para más tweets liosos, mal redactados y que intentan confundir a la gente más que enseñar!
Y recuerden darle RT al primer tweet, necesito llegar a 9 mil RTs para poder pagar el alquiler