watchEffect监听
watchEffect
官网:立即运行一个函数,同时响应式地追踪其依赖,并在依赖更改时重新执行该函数。
watch
对比watchEffect
:
都能监听响应式数据的变化,不同的是监听数据变化的方式不同
watch
:要明确指出监视的数据
watchEffect
:不用明确指出监视的数据(函数中用到哪些属性,那就监视哪些属性)。
<template> <div class="person"> <h2>需求: 当水温达到60° 或者 水位达到80cm时, 给服务器发请求</h2> <h2>当前水温:{{temp}}°C</h2> <h2>当前水位:{{height}}cm</h2> <button @click="changeTemp">点我水温+10</button> <button @click="changeHeight">点我高度+10</button> </div> </template> <script setup lang="ts" name="Person"> import {ref, watch, watchEffect} from 'vue' //数据 let temp = ref(10); let height = ref(0); //函数 function changeTemp() { temp.value += 10; } function changeHeight() { height.value += 10; } //监听 -- watch 版本 // watch([() => temp.value, () => height.value], (newValue, oldValue) => { // let [newTemp, newHeight] = newValue; // if(newTemp >= 60 || newHeight >= 80) { // console.log('给服务器发送请求提示'); // } // console.log(newValue, '-', oldValue) // }) //监听 -- watchEffect 版本 可以看到不用明确指出监视对象了 watchEffect(() => { // console.log('@') if(temp.value >= 60 || height.value >= 80) { console.log('给服务器发送请求提示'); } }) </script> <style> .person { background-color: skyblue; box-shadow: 0 0 10px; /* 盒子阴影 */ border-radius: 10px; padding: 20px; } button { margin: 0 5px; } </style>
本文作者:如此而已~~~
本文链接:https://www.cnblogs.com/fragmentary/p/18626673
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步