Vue.js-daref va reactive hook-larini tanlashda qaysi biri qulayroq ekanligini aniqlashda, ularning farqlarini va qanday holatlarda foydalanishni tushunish kerak . Har ikkala hook ham reaktiv ma'lumotlar yaratish uchun ishlatiladi, lekin ularning ishlash usuli va qo'llanilishi jichcha farq qiladi.
ref
Qulayliklari
Oddiy qiymatlar uchun mos:
refasosan primitive turlar (string, number, boolean) uchun qulay. Masalan,count,messagekabi oddiy qiymatlar uchun.DOM elementlariga murojaat qilish:
refDOM elementlarini saqlash va ularga murojaat qilish uchun ishlatiladi. Masalan,<div ref="myDiv"></div>.Qiymatga kirish oson:
refbilan ishlashda,.valueorqali qiymatga kirish va uni o'zgartirish mumkin.
Misol
import { ref } from 'vue';
const count = ref(0);
count.value++; // Qiymatni oshirish
reactive
Qulayliklari
-
Murakkab ma'lumot tuzilmalari uchun mos:
reactiveobject yoki array kabi murakkab tuzilmalarga ega bo'lgan ma'lumotlar uchun qulay. U butun ob'ekt yoki massivni reactive (reaktiv) qiladi. -
Objectlar bilan ishlash:
reactiveobjectning barcha xususiyatlarini reaktiv qiladi, shuning uchun to'g'ridan-to'g'ri xususiyatlarga kirish va ularni o'zgartirish mumkin.
Misol
import { reactive } from 'vue';
const state = reactive({
count: 0,
name: 'Vue'
});
state.count++; // Qiymatni oshirish
state.name = 'Vue 3'; // Xususiyatni o'zgartirish
ref va reactive farqlari
-
Qiymat turi:
-
refoddiy qiymatlar uchun mos va.valueorqali ularga kiriladi. -
reactivecomplex holatga ega object yoki array uchun mos va to'g'ridan-to'g'ri xususiyatlarga kiriladi.
-
-
Qo'llanilish holatlari:
-
refprimitive turlar (string, number, boolean) va DOM elementlari uchun ishlatiladi. -
reactiveobject yoki array kabi murakkab tuzilmalar uchun ishlatiladi.
-
-
Reaktivlik:
-
reffaqat bitta qiymatni reaktiv qiladi. -
reactivebutun bir object yoki array ni reaktiv qiladi, shu jumladan uning barcha xususiyatlarini.
-
Tanlash qachon qulay
- Agar sizda oddiy qiymat bo'lsa yoki DOM elementiga murojaat qilish kerak bo'lsa,
refdan foydalaning. - Agar sizda ko'p xususiyatlarga ega bo'lgan object yoki array bo'lsa,
reactivedan foydalaning.
Umumiy misol
Quyida ref va reactive ni birgalikda qo'llash misoli keltirilgan:
<template>
<div>
<p>Message: {{ message }}</p>
<p>Todos:</p>
<ul>
<li v-for="todo in todos" :key="todo.id">{{ todo.text }}</li>
</ul>
<input v-model="newTodoText" placeholder="New todo" />
<button @click="addTodo">Add Todo</button>
</div>
</template>
<script setup>
import { ref, reactive } from 'vue';
const message = ref('Hello, Vue 3!');
const todos = reactive([
{ id: 1, text: 'Learn Vue 3' },
{ id: 2, text: 'Build something awesome' }
]);
const newTodoText = ref('');
function addTodo() {
todos.push({ id: todos.length + 1, text: newTodoText.value });
newTodoText.value = '';
}
</script>
Ushbu misol ref va reactive hook-larini qanday birgalikda ishlatish mumkinligini ko'rsatadi. Tanlov qaysi turdagi ma'lumotlar bilan ishlayotganingizga bog'liq bo'ladi.
PS: Yuqridagi rasmda nega bunday demoqda , π€π€π«’π«’ππππ©π«π« , video darsda javob berib o'taman bu haiqda :)
Bizni tarmoqlarda kuzatishingiz mumkin va maqola foydali bo'lsa izoh va Vuechi do'stlaringizga ulashing. π«‘

Top comments (0)