Bien, aquí tenemos el ubicuo ejemplo del contador. Veamos cómo funciona esto. Para definir una pieza de estado en Ripple, usamos track. Usamos let, ya se siente un poco más como JavaScript. Y en React, tenemos que pasar estas funciones mutadoras, pero en Ripple, podemos simplemente usar plus plus. Es la desestructuración perezosa la que hace que esto funcione. Porque como sabes, el plus plus está tanto leyendo como mutando el valor. Y luego simplemente lo mostramos como lo haríamos normalmente. Y así, cuando este valor cambia, solo esta parte del, solo el contenido del botón se actualizará en el DOM, lo cual es agradable.
¿Qué tal derivar estado? Bueno, en React, tienes que usar el hook use memo, y en Ripple, simplemente llamas a track de nuevo, esta vez con una función de callback. Y en React, depende de ti, el desarrollador, recordar cuáles son las dependencias. Pero en Ripple, el ampersand está haciendo todo ese trabajo por ti. Así que, double se actualizará automáticamente cuando count cambie.
¿Qué tal los efectos? Bueno, digamos que quieres disparar un efecto cada vez que un valor cambia. En React, usarías use effect con el valor en el array de dependencias. En Ripple, al igual que en Solid, hay una función de efecto que llamas. Y de nuevo, el ampersand está haciendo todo el trabajo para decirle al efecto cuándo volver a ejecutar esta función. Pero, ¿y si solo quieres hacer el efecto una vez? Bueno, Ripple tiene esta salida de emergencia llamada untrack, que le dice a Ripple que solo queremos disparar esto una vez, y luego no más, dejar de rastrear. Y cada vez que ves una API como esta, es una pista. Significa que el framework tiene una idea muy clara de para qué está optimizando. Pero también permite esa salida de emergencia porque a veces sabe que aunque debería ser el valor predeterminado siempre estar rastreando, a veces quieres salir de eso.
Comments