Y eso funciona porque unwrap es una función de azúcar ya que verifica si la variable es un ref. Y si es un ref, devuelve, llama a count.value. De lo contrario, simplemente devuelve el valor en sí. Si estás usando VSCode y la extensión Volar, puedes habilitar que automáticamente agregue .value a los refs. Esta es una configuración que puedes habilitar. Se llama autocomplete-refs. Está deshabilitado por defecto para reducir el uso de CPU.
Y puedes ver en este ejemplo, si presionas, si ingresas el nombre count, la extensión automáticamente agrega .value después del nombre de la variable, lo cual puede ser bastante útil.
Ahora hagamos una comparación entre reactive y ref. Ref puntúa ya que se puede usar con cualquier valor en comparación con reactive que solo se puede usar en tipos de objeto. Pero hay una desventaja al usar ref, y es porque los valores se acceden de manera diferente en script y template. Así que este es un punto a favor de reactive. Porque al usar ref dentro de la pestaña de script, necesitas llamar a .value. Pero Vue desenvuelve automáticamente el ref en el template así que no necesitas llamar a .value allí. Los objetos Ref pueden reasignarse, lo cual es un punto a favor de ref. Ref también puntúa porque las referencias se pueden pasar a través de funciones sin perder reactividad. También vimos que reactive pierde reactividad si intentamos desestructurar propiedades de objeto en variables locales. Pero hay una ventaja al usar reactive si intentas migrar a la API de composición porque es similar al objeto de datos de las herramientas de Vue.
Lleguemos a la conclusión. En mi opinión, prefiero ref. Y lo que más me gusta de ref es que sabes que es un valor reactivo si ves que su propiedad se accede a través de .value. Y no es tan fácil si los objetos se crean con reactive. Así que si ves esta línea de código en tu aplicación, no sabes si algún objeto es un objeto JavaScript simple o si es un objeto reactivo. Si ves esta línea dentro de tu aplicación, es bastante probable que cualquier ref sea un ref y se comporte de manera reactiva.
Hablemos de un patrón recomendado y es agrupar refs dentro de un objeto reactivo. Así que tenemos dos refs loading y error y los pasamos a un objeto reactivo que se asigna a una variable de estado local. Ahora podemos observar todo el objeto reactivo usando watch effect, pero también podemos definir observadores para los refs por separado. Y lo que es agradable de eso, si actualizamos el ref, por ejemplo, estableciendo el valor de loading en false, esto activa ambos observadores. Y si no necesitas la reactividad del objeto de estado, también puedes agruparlo en un objeto JavaScript simple. Agrupar refs resulta en un solo objeto que es más fácil de manejar, mantiene tu código organizado y de un vistazo, puedes ver que los refs agrupados pertenecen juntos y están de alguna manera relacionados.
Comments