Zote mbili huunda hali ya kuzingira katika Composition API, lakini zinafanya kazi tofauti. ref inafunika thamani yoyote (ikiwa ni pamoja na primitives) katika kontena ya kuzingira; reactive inafanya kitu kuwa kuzingira kwa kina moja kwa moja.
Zote mbili huunda hali ya kuzingira katika Composition API, lakini zinafanya kazi tofauti. ref inafunika thamani yoyote (ikiwa ni pamoja na primitives) katika kontena ya kuzingira; reactive inafanya kitu kuwa kuzingira kwa kina moja kwa moja.
<script setup>
import { ref } from "vue";
const count = ref(0); // wraps a primitive
const user = ref({ name: "Ann" });
function inc() {
count.value++; // ⚠️ in SCRIPT you must use .value
user.value.name = "Bob";
}
</script>
<template>
<p>{{ count }}</p> <!-- ✅ in TEMPLATE, .value is auto-unwrapped -->
</template>
Mzunguko muhimu: katika JavaScript unakabili ref kupitia .value; katika template Vue inataoa kiotomatiki. Kusahau .value katika script ni kosa la kawaida kwa wanaoanza.
<script setup>
import { reactive } from "vue";
const state = reactive({ count: 0, user: { name: "Ann" } });
state.count++; // ✅ access directly, no .value
state.user.name = "Bob"; // deeply reactive
</script>
reactive inafanya kazi tu kwenye vitu/safu (sio primitives) na unakabili sifa moja kwa moja.
let state = reactive({ count: 0 });
state = { count: 5 }; // ❌ breaks reactivity (lost the reactive proxy)
const { count } = state; // ❌ destructuring loses reactivity
Kupya kuteua kitu cha reactive au kufanya masanidi yake kukataa kutoka kuzingira — jamba la kawaida. ref haina matatizo haya (unabadilisha .value).
ref → primitives, and the recommended default (works for everything, easy to reassign)
reactive→ when you want a grouped object of state without .value (but mind destructuring)
Vikundi vingi vinabainisha ref kila mahali kwa uwiano.
ref na reactive ni msingi wa Vue 3 Composition API hali.
Kuelewa kwamba ref inahitaji .value katika script (kuwekwa kiotomatiki katika templates) na kwamba reactive kupoteza kuzingira kuteua upya/kufa ni viongeza majibu mawili ya kawaida ya kuzingira katika Vue.