Teknologian jakaminen

Reaktiivinen ref() ja reactive()

2024-07-08

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


viite()

  • vaikutus: Määritä reagoivat muuttujat.

  • kielioppi:let xxx=ref(alkuarvo).

  • palautusarvo: RefImplin ilmentymäobjekti, jota kutsutaan ref-objektiksi tai ref-objektiksi. Ref-objektin arvo-attribuutti on responsiivinen.

  • ole varovainen

    1. JS:n toimintatiedot edellyttävät: xxx.value, mutta .value ei ole pakollinen mallissa, käytä sitä suoraan.
    2. Kohdalle let name =ref('Zhang San'), nimi ei ole responsiivinen, nimi.arvo on responsiivinen.

reaktiivinen ()

  • vaikutus: Määrittele reagoivat objektit (älä käytä sitä perustyypeille, käytä ref, muuten raportoidaan virhe).

  • kielioppi:let responsive object = reactive(lähdeobjekti).

  • palautusarvo: Välityspalvelimen ilmentymäobjekti, jota kutsutaan reagoivaksi objektiksi.

  • ole varovainen: Reactiven määrittelemä reagoiva data on "syvä".

ref vs reaktiivinen

  • Makronäkökulmasta:
    1. ref käytetään määrittelemään: perustyyppitiedot, objektityyppitiedot;
    2. reaktiivista käytetään määrittämään: objektityypin tiedot.
  • ero:
    1. Ref:n luomien muuttujien on käytettävä arvoa (voit lisätä arvoa automaattisesti volar-laajennuksella).
    2. Reactive määrittää uuden objektin uudelleen ja menettää reagointikykynsä (voit käyttää 0object.assign korvaamaan sen kokonaisuutena).
  • Käyttöperiaatteet:
    1. Jos tarvitset perustyyppistä reagoivaa dataa, sinun on käytettävä ref.
    2. Jos tarvitset reagoivan objektin, hierarkia ei ole syvä, voidaan käyttää joko ref:tä tai reaktiivista.
    3. Jos tarvitset responsiivisen objektin, jolla on syvä hierarkia, on suositeltavaa käyttää reaktiivista.

toRefs ja toRef

vaikutus: Muunna jokainen reagoivan objektin attribuutti ref-objektiksi.
Huomautus: toRefsillä on sama toiminto kuin toRefillä, mutta toRefs voidaan muuntaa erissä.
Syntaksi on seuraava:

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