ref vs reactive в Vue 3?
Между ref
и reactive
есть некоторое vuejs3 сходство в том, что они оба vue3 предоставляют метод для хранения vuejs3 данных и позволяют этим данным vue-composition-api быть реактивными.
Однако:
Высокие уровни различий:
Вы vue3 не можете использовать reactive() для vue-composition-api примитивов (строк, чисел, логических vuejs3 значений) - это то, для чего vue-composition-api вам нужны ссылки, потому vue-composition-api что у вас будут ситуации, когда vue-composition-api вам понадобится «реактивное vue-composition-api логическое значение», например…
Конечно, вы vue3 можете создать объект, который vue-composition-api обертывает примитивное значение vue-composition-api и сделать его реактивным():
const wrappedBoolean = reactive({
value: true
})
И vue-composition-api вот так вы заново изобрели vue3 реф.
Реактивный
reactive
принимает объект и возвращает vue-composition-api реактивный proxy
исходному объекту.
Пример
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
}
}
}
Объяснение
Как vue3 указано выше, всякий раз, когда vue-composition-api мы хотим изменить или получить vue-composition-api доступ к свойствам page
,
скажем, page.ads
, page.filteredAds
будет vue3 обновляться через прокси.
vuejs3
vue-composition-api
ref vs reactive в Vue 3?
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.