Y eso funciona porque unwrap es una función de azúcar 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 agregue automáticamente .value a los refs. Esta es una configuración que puedes habilitar. Se llama autocomplete-refs. Viene deshabilitado de forma predeterminada para reducir el uso de la CPU.
Y puedes ver en este ejemplo, si escribes, si ingresas el nombre count, la extensión automáticamente agrega .value después del nombre de la variable, lo cual puede ser muy ú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 que los valores se acceden de manera diferente en el script y la plantilla. 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 desenrolla automáticamente el ref en la plantilla, por lo que no necesitas llamar a .value allí. Los objetos Ref se pueden reasignar, 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 la reactividad. También vimos que reactive pierde reactividad si intentamos desestructurar las propiedades del 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 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. Entonces, si ves esta línea de código en tu aplicación, no sabes si algún objeto es un objeto JavaScript plano 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 sobre un patrón recomendado y eso es agrupar refs dentro de un objeto reactivo. Entonces 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 watchers para los refs por separado. Y lo bueno de eso es que si actualizamos el ref, por ejemplo, estableciendo el valor de loading en false, esto activa ambos watchers. Y si no necesitas la reactividad del objeto de estado, también puedes agruparlo en un objeto JavaScript plano. 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 relacionados de alguna manera.
Comments