watch 監聽定義的資料發生改變的時候執行什麼函式
watch 方法有兩個引數 watch(sum,箭頭函式)
這個箭頭函式里面有兩個引數(newValue,oldValue)=> {},如下程式碼
<template> <!-- watch;監視資料變化 vue3 可以監視一下四種資料型別: ref定義的資料 reactive 定義的資料 函式返回一個值 一個包含上述內容的陣列 --> <div class="person"> 當前和:{{ sum }} <button @click="add">點我加一</button> </div> </template> <script setup lang="ts"> // 需求:當值大於多少時,執行什麼操作 import { ref,watch } from "vue"; let sum = ref(0); function add() { sum.value++; } //監視 watch(sum, (newValue,oldValue)=>{ console.log(newValue, oldValue); }) </script> <style scoped> .person { background: #ddd; box-shadow: 0 0 10px; border-radius: 10px; padding: 20px; } button { margin: 0 5px; } </style>
解除監視:自己呼叫自己就可以解除監視,watch返回的是一個函式,只需將watch賦值給一個變數,再呼叫即可。
當sum的值大於5的時候,不進行監視了
//監視 let stopWatch = watch(sum, (newValue,oldValue)=>{ console.log(newValue, oldValue); if (newValue > 5) { stopWatch(); } })