Partage de technologie

Ref réactif () et réactif ()

2024-07-08

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


réf()

  • effet: Définir des variables réactives.

  • grammaire:let xxx=ref(valeur initiale).

  • valeur de retour: Un objet d'instance de RefImpl, appelé objet ref ou ref. L'attribut value de l'objet ref est réactif.

  • sois prudent

    1. Les données d'opération dans JS nécessitent : xxx.value, mais .value n'est pas requis dans le modèle, utilisez-le simplement directement.
    2. Pour let name =ref('Zhang San'), le nom n'est pas réactif, name.value est réactif.

réactif()

  • effet: Définissez des objets réactifs (ne l'utilisez pas pour les types de base, utilisez ref, sinon une erreur sera signalée).

  • grammaire:let objet réactif = réactif (objet source).

  • valeur de retour: Un objet d'instance de Proxy, appelé objet réactif.

  • sois prudent: Les données réactives définies par réactif sont « profondes ».

réf vs réactif

  • D'un point de vue macro :
    1. ref est utilisé pour définir : les données de type de base, les données de type objet ;
    2. réactif est utilisé pour définir : des données de type objet.
  • la différence:
    1. Les variables créées par ref doivent utiliser une valeur (vous pouvez utiliser le plug-in volar pour ajouter automatiquement de la valeur).
    2. Reactive réaffecte un nouvel objet et perdra sa réactivité (vous pouvez utiliser 0object.assign pour le remplacer dans son ensemble).
  • Principes d'utilisation :
    1. Si vous avez besoin d'un type de base de données réactives, vous devez utiliser la réf.
    2. Si vous avez besoin d'un objet réactif, la hiérarchie n'est pas profonde, vous pouvez utiliser ref ou réactif.
    3. Si vous avez besoin d'un objet réactif avec une hiérarchie profonde, il est recommandé d'utiliser réactif.

toRefs et toRef

effet: Convertissez chaque attribut d'un objet réactif en un objet de référence.
Remarque: toRefs a la même fonction que toRef, mais toRefs peut être converti par lots.
La syntaxe est la suivante :

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