在 Vue 3.0 中,computed 和 watch 是用于处理响应式数据的两个重要 API。它们分别用于计算属性和侦听数据变化。

computed 计算属性

computed 允许你创建基于响应式数据的派生状态,这些状态的值会根据相关的响应式数据动态计算而来。它返回一个 ref 对象。
import { ref, computed } from 'vue';

const count = ref(1);

const squared = computed(() => {
  return count.value * count.value;
});

console.log(squared.value); // 输出: 1

count.value = 2;

console.log(squared.value); // 输出: 4

在上述示例中,squared 是一个计算属性,它的值基于 count 的平方。当 count 的值发生变化时,squared 会自动更新。

watch 侦听器

watch 允许你在响应式数据发生变化时执行自定义的操作。它可以监视一个或多个数据,并在数据变化时触发回调函数。
import { ref, watch } from 'vue';

const count = ref(1);

watch(() => {
  console.log('count changed:', count.value);
});

count.value = 2;
// 输出: count changed: 2

你还可以监视多个数据:
watch([() => count.value, () => anotherValue.value], ([newCount, newAnotherValue], [oldCount, oldAnotherValue]) => {
  console.log('count or anotherValue changed:', newCount, newAnotherValue, oldCount, oldAnotherValue);
});

在 watch 中,第一个参数可以是一个 getter 函数,返回一个要监视的值,也可以是一个包含 getter 函数的数组。

这就是在 Vue 3.0 中使用 computed 和 watch 的基本用法。它们使得你能够更灵活地处理和响应状态的变化,从而构建更复杂的应用。


转载请注明出处:http://www.zyzy.cn/article/detail/580/Vue 3.0