Vue.js Reactivity
Working with reactive data in Vue
ref
import { ref } from 'vue';
const count = ref(0); # create reactive reference
count.value++; # access/modify with .value
reactive
import { reactive } from 'vue';
const state = reactive({ # create reactive object
count: 0,
name: 'John'
});
state.count++; # direct access (no .value)
computed
import { computed } from 'vue';
const doubleCount = computed(() => { # computed property
return count.value * 2
});
watch
import { watch } from 'vue';
watch(count, (newVal, oldVal) => { # watch ref
console.log(newVal);
});
watchEffect
import { watchEffect } from 'vue';
watchEffect(() => { # auto-track dependencies
console.log(count.value);
});
toRefs
import { toRefs } from 'vue';
const { count, name } = toRefs(state); # destructure while keeping reactivity