Maison > Questions et réponses > le corps du texte
P粉2311124372023-08-28 18:04:31
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 :
const wrappedBoolean = reactive({ value: true })
Source : discussion sur le forum Vue< /p>
Réaction
reactive
获取对象并向原始对象返回一个响应式代理
.
Exemple
import {ref, reactive} from "vue"; export default { name: "component", setup() { const title = ref("my cool title") const page = reactive({ contents: "meh?", number: 1, ads: [{ source: "google" }], filteredAds: computed(() => { return ads.filter(ad => ad.source === "google") }) }) return { page, title } } }
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.
P粉4821083102023-08-28 11:15:43
reactive()
N'accepte que les objets, pas Les primitives JS (String, Boolean, Number, BigInt, Symbol, null, undefined) < /里>
ref()
正在幕后调用 reactive()
est appelé en coulisses reactive()
适用于对象,并且 ref()
调用 reactive()
Puisque ref()
有一个用于重新分配的 .value
属性,reactive()
, les objets s'appliquent aux deux < /里>
.value
pour la réaffectation,
ref()
'string'
、true
、23
Plus d'informations icireactive()
)
ref()
Quand...
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'utilisation
reactive()
, mais
setup() { const blogPosts = ref([]); return { blogPosts }; } getBlogPosts() { this.blogPosts.value = await fetchBlogPosts(); }Ce qui précède
nécessite de réaffecter une propriété plutôt que l'objet entier.
setup() { const blog = reactive({ posts: [] }); return { blog }; } getBlogPosts() { this.blog.posts = await fetchBlogPosts(); }Cas d'utilisation
Un bon cas d'utilisation pour reactive() est un ensemble de primitives qui vont ensemble :
const person = reactive({ name: 'Albert', age: 30, isNinja: true, });Le code ci-dessus semble plus logique que le code ci-dessus
const name = ref('Albert'); const age = ref(30); const isNinja = ref(true);
ref()
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/reactive()
和 ref()
Utilisez uniquement arguments :