Compartir tecnología

Ref reactiva () y reactiva ()

2024-07-08

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina


árbitro()

  • efecto: Defina variables de respuesta.

  • gramática:let xxx=ref(valor inicial).

  • valor de retorno: Un objeto de instancia de RefImpl, denominado objeto ref o ref. El atributo de valor del objeto ref responde.

  • ten cuidado

    1. Los datos de operación en JS requieren: xxx.value, pero .value no es necesario en la plantilla, solo úselo directamente.
    2. Para let name =ref('Zhang San'), el nombre no responde, name.value sí.

reactivo()

  • efecto: Defina objetos responsivos (no lo use para tipos básicos, use ref, de lo contrario se informará un error).

  • gramática:let objeto responsivo = reactivo(objeto fuente).

  • valor de retorno: Un objeto de instancia de Proxy, denominado objeto responsivo.

  • ten cuidado: Los datos de respuesta definidos por reactivo son "profundos".

árbitro vs reactivo

  • Desde una perspectiva macro:
    1. ref se utiliza para definir: datos de tipo básico, datos de tipo de objeto;
    2. reactivo se utiliza para definir: datos de tipo de objeto.
  • la diferencia:
    1. Las variables creadas por ref deben usar valor (puede usar el complemento volar para agregar valor automáticamente).
    2. Reactivo reasigna un nuevo objeto y perderá capacidad de respuesta (puede usar 0object.assign para reemplazarlo en su totalidad).
  • Principios de uso:
    1. Si necesita un tipo básico de datos responsivos, debe utilizar la ref.
    2. Si necesita un objeto responsivo, la jerarquía no es profunda, se puede usar ref o reactivo.
    3. Si necesita un objeto responsivo con una jerarquía profunda, se recomienda utilizar reactivo.

toRefs y toRef

efecto: convierte cada atributo de un objeto responsivo en un objeto de referencia.
Observación: toRefs tiene la misma función que toRef, pero toRefs se puede convertir en lotes.
La sintaxis es la siguiente:

import {reactive,toRefs,toRef} from
// 数据
let person = reactive({
	name:'张三
	age:18
})
let {name,age} = toRefs(person)
let nl = toRef(person,'age')