1<template>
2 <div>num: {{ num }}</div>
3 <div>age: {{ obj.age }}</div>
4 <button @click="increment">增加</button>
5</template>
6
7<script lang="ts" setup>
8import { ref, reactive, watchEffect } from 'vue';
9
10// 定义响应式数据
11const num = ref(10);
12const obj = reactive({
13 age: 10
14});
15
16// 自动追踪依赖并执行副作用
17watchEffect(() => {
18 console.log('num', num.value); // 输出变化后的值
19 console.log('age', obj.age); // 输出变化后的值
20});
21
22// 定义一个方法来修改响应式数据
23const increment = () => {
24 num.value++;
25 obj.age++;
26};
27</script>