https://vuejs.org/guide/best-practices/performance#computed-stability Тем временем, в 3.4 появилась зело полезная штука. const count = ref(0) const isEven = computed(() => count.value % 2 === 0)
watchEffect(() => console.log(isEven.value)) // true
// Новых логов не будет, ведь isEven остается true count.value = 2 count.value = 4 НО: const computedObj = computed(() => { return { isEven: count.value % 2 === 0 } }) Computed всегда возвращает новый объект. Вью не сравнивает их => привет перерисовки. В 3.4 добавили новый параметр колбэка: const computedObj = computed((oldValue) => { const newValue = { isEven: count.value % 2 === 0 } if (oldValue && oldValue.isEven === newValue.isEven) { return oldValue } return newValue }) Сами сравнили объекты. Сами решили, поменялось ли. Радуемся оптимизации.