ref() — wraps values in a reactive container. reactive() — makes objects deeply reactive.
ref():
reactive():
1// ref - works with any value2import { ref } from "vue"34const count = ref(0)5const user = ref({ name: "John" })67count.value++ // Access with .value8user.value.name = "Jane"
1// reactive - objects only2import { reactive } from "vue"34const state = reactive({ count: 0, name: "John" })5state.count++ // No .value needed6state.name = "Jane"
Key differences: