Diego López

¿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