Skip to content

Menguasai Reactivity di Vue 3 Panduan Lengkap Ref, ShallowRef, Reactive, dan Lainnya

Updated: at 09.10

Daftar Isi

Pendahuluan

Reactivity adalah jantung dari Vue 3, memungkinkan data aplikasi Anda menjadi responsif dan interaktif secara otomatis. Namun, dengan beragam API reactivity seperti ref(), shallowRef(), reactive(), dan lainnya, mana yang harus Anda pilih? Dalam artikel ini, kita akan mengupas tuntas setiap API dan memberikan panduan praktis untuk mengoptimalkan penggunaannya.

Ref: Membuat Data Primitif Reaktif

ref() adalah cara termudah untuk membuat data primitif (string, number, boolean) atau objek/array sederhana menjadi reaktif.

Cara Menggunakan Ref

  1. Bungkus nilai dengan ref().
  2. Akses atau ubah nilai melalui properti .value.

Contoh:

const count = ref(0);
console.log(count.value); // 0

count.value++;
console.log(count.value); // 1

Tips Menggunakan Ref

Perusahaan besar seperti Alibaba menggunakan ref() secara ekstensif dalam pengembangan aplikasi e-commerce mereka untuk membuat data reaktif dengan mudah.

ShallowRef: Optimasi Performa untuk Data Kompleks

shallowRef() mirip dengan ref(), namun hanya membuat nilai di tingkat paling atas menjadi reaktif. Ini sangat berguna untuk mengoptimalkan performa saat bekerja dengan struktur data besar dan kompleks.

Kapan Menggunakan ShallowRef

Contoh:

const state = shallowRef({ count: 1 });

// Tidak akan memicu perubahan
state.value.count = 2;

// Akan memicu perubahan
state.value = { count: 2 };

Memaksa Pembaruan dengan triggerRef

Jika Anda melakukan mutasi yang dalam pada nilai di dalam shallowRef(), gunakan triggerRef() untuk memaksa pembaruan efek yang bergantung padanya.

const shallow = shallowRef({
  greet: "Hello, world",
});

watchEffect(() => {
  console.log(shallow.value.greet);
});

// Tidak akan memicu efek
shallow.value.greet = "Hello, universe";

// Akan memicu efek dan log "Hello, universe"
triggerRef(shallow);

Perusahaan teknologi terkemuka seperti Tencent menggunakan shallowRef() untuk mengoptimalkan performa aplikasi web mereka yang kompleks.

Reactive: Membuat Objek Reaktif

reactive() digunakan untuk membuat objek menjadi reaktif. Tidak seperti ref(), reactive() tidak memerlukan penggunaan .value untuk mengakses atau mengubah properti objek.

Contoh:

const state = reactive({
  count: 0,
  message: "Hello",
});

console.log(state.count); // 0
state.count++;
console.log(state.count); // 1

Perbedaan Ref dan Reactive

Baidu, raksasa teknologi China, menggunakan reactive() secara luas dalam pengembangan aplikasi web mereka untuk membuat objek data reaktif.

ShallowReactive: Reaktivitas di Tingkat Atas

shallowReactive() mirip dengan reactive(), namun hanya membuat properti di tingkat paling atas menjadi reaktif. Objek atau array yang nested di dalam tidak akan terpengaruh.

const state = shallowReactive({
  foo: 1,
  nested: {
    bar: 2,
  },
});

state.foo++; // Reaktif
state.nested.bar++; // Tidak reaktif

Peringatan Penggunaan ShallowReactive

API Reactivity Tambahan

Vue 3 juga menyediakan API reactivity tambahan seperti:

Panduan Memilih API Reactivity

Hindari Abstraksi Komponen Berlebihan

Instance komponen jauh lebih mahal daripada DOM node biasa. Hindari membuat terlalu banyak komponen hanya untuk abstraksi atau organisasi kode, karena dapat berdampak negatif pada performa aplikasi.

Kesimpulan

Reactivity adalah fitur yang sangat kuat dalam Vue 3, dan memahami berbagai API reactivity seperti ref(), shallowRef(), reactive(), dan lainnya sangat penting untuk mengembangkan aplikasi yang efisien dan performant.

Dengan panduan praktis dalam artikel ini, Anda sekarang siap untuk memilih API reactivity yang tepat untuk setiap kasus penggunaan dan mengoptimalkan performa aplikasi Vue 3 Anda.

Ingatlah untuk selalu mempertimbangkan performa dan menghindari kompleksitas yang tidak perlu. Dengan pemahaman yang solid tentang reactivity di Vue 3, Anda akan menjadi pengembang Vue yang handal dan efektif.

Selamat menerapkan reactivity dan membuat aplikasi Vue yang luar biasa!


Sumber