1. <template>
    2. <div>
    3. <p>{{n}}</p>
    4. <button @click="setN">click</button>
    5. </div>
    6. </template>
    7. <script lang="ts">
    8. import { defineComponent,reactive,toRefs,watch } from 'vue'
    9. export default defineComponent({
    10. setup() {
    11. const state = reactive({
    12. n:0
    13. })
    14. const setN = () => {
    15. state.n++
    16. }
    17. // 监听单一数据源
    18. // watch(() => state.n,() => {
    19. // console.log('数据改变了')
    20. // })
    21. // watch(state,() => {
    22. // console.log('数据改变了')
    23. // })
    24. // 监听多个数据源
    25. watch([state],()=>{
    26. console.log('数据改变了')
    27. });
    28. return{
    29. ...toRefs(state),
    30. setN
    31. }
    32. },
    33. })
    34. </script>

    监听单一数据源

    1. watch(state,() => {})
    2. watch(() => state.count,() = > {})

    多个数据源

    1. watch([数据1,数据2],() => {})