Réf vs React dans Vue 3 ?
P粉743288436
2023-08-27 20:35:30
<p>Découvrez quelques exemples tirés des didacticiels d'aperçu de Vue 3 de certaines personnes. [Actuellement en version bêta]</p>
<p>J'ai trouvé deux exemples :</p>
<h2>Formule de réaction</h2>
<pre class="brush:js;toolbar:false;"><template>
<bouton @click="incrément">
Le nombre est : {{ state.count }}, le double est : {{ state.double }}
</bouton>
</modèle>
<script>
importer { réactif, calculé } depuis 'vue'
exporter par défaut {
installation() {
état const = réactif ({
compte: 0,
double : calculé(() => state.count * 2)
})
fonction incrément() {
état.count++
}
retour {
État,
incrément
}
}
}
</script>
≪/pré>
<h2>Référence</h2>
<pre class="brush:js;toolbar:false;"><template>
<div>
<h2 ref="titleRef">{{ formattedMoney }}</h2>
<input v-model="delta" type="numéro">
<bouton @click="ajouter">Ajouter</bouton>
</div>
</modèle>
<script>
importer { ref, calculé, onMounted } depuis "vue" ;
exporter par défaut {
configuration (accessoires) {
//État
const argent = réf(1);
const delta = réf(1);
// Réfs
const titleRef = ref(null);
// Accessoires calculés
const formattedMoney = calculated(() => money.value.toFixed(2));
//Crochets
onMounted(() => {
console.log("titreRef", titreRef.value);
});
// Méthodes
const add = () => (argent.valeur += Nombre (delta.valeur));
retour {
delta,
argent,
titreRéf,
argent formaté,
ajouter
} ;
}
} ;
</script>
≪/pré>
<p><br /></p>
Il existe certaines similitudes entre
ref
和reactive
dans le sens où ils fournissent tous deux un moyen de stocker des données et permettent de répondre aux données.Mais :
Différence de haut niveau :
Source : discussion sur le forum Vue
Réaction
reactive
获取对象并向原始对象返回一个响应式代理
.Exemple
Instructions
Dans ce qui précède, chaque fois que nous souhaitons modifier ou accéder à une propriété de
page
,Par exemple
page.ads
,page.filteredAds
sera mis à jour via proxy.Points clés
reactive()
N'accepte que les objets, pas Les primitives JS (String, Boolean, Number, BigInt, Symbol, null, undefined)ref()
正在幕后调用reactive()
est appelé en coulissesreactive()
适用于对象,并且ref()
调用reactive()
Puisqueref()
有一个用于重新分配的.value
属性,reactive()
, les objets s'appliquent aux deuxa un attribut
n'a pas cet attribut et ne peut donc pas être réaffecté.value
pour la réaffectation,ref()
'string'
、true
、23
Plus d'informations ici
reactive()
)ref()
Quand...Il s'agit d'un objet qui n'a pas besoin d'être réaffecté et vous souhaitez éviter les frais généraux de
ref()
似乎是可行的方法,因为它支持所有对象类型并允许使用.value
重新分配。ref()
是一个很好的起点,但是当您习惯了该 API 后,就会知道reactive()
ref()
.value
.est un bon point de départ, mais à mesure que vous vous habituerez à l'API, vous apprendrez que
ref()
,但ref()
entraîne moins de frais généraux et vous constaterez peut-être qu'elle répond mieux à vos besoins.reactive()
Cas d'utilisationPour les primitives, vous utiliserez toujours
est utile pour les objets qui doivent être réaffectés (tels que les tableaux).reactive()
, maisnécessite de réaffecter une propriété plutôt que l'objet entier.
Cas d'utilisationUn bon cas d'utilisation pour reactive() est un ensemble de primitives qui vont ensemble :
Le code ci-dessus semble plus logique que le code ci-dessusref()
Liens utiles Si vous êtes toujours perdu, ce guide simple m'a aidé : https://www.danvega.dev/blog/2020/02/12/vue3-ref-vs-reactive/
https://dev.to/ycmjason/thought-on-vue-3-composition-api-reactive-considered-harmful-j8c🎜🎜 Les décisions derrière 🎜🎜 et 🎜 existent, avec d'autres informations importantes, dans la RFC de l'API Vue Composition : 🎜https://vuejs.org/guide/extras/composition-api-faq. html#pourquoi-composition-api🎜🎜reactive()
和ref()
Utilisez uniquement arguments :