空调不光是你按才动,它还有自动逻辑:温度到了自动停机,开机后自动连 WiFi,关机前自动保存设置。
function AirConditioner() {
const [temp, setTemp] = useState(26);
const [roomTemp, setRoomTemp] = useState(30);
const [isOn, setIsOn] = useState(false);
useEffect(() => {
connectToWiFi();
console.log('空调已连接 WiFi');
return () => {
disconnectWiFi();
console.log('空调已断开 WiFi');
};
}, []);
useEffect(() => {
if (roomTemp <= temp) {
console.log('室温达标,压缩机暂停');
}
}, [roomTemp, temp]);
useEffect(() => {
if (!isOn) return;
const timer = setInterval(() => {
setRoomTemp(t => t - 0.5);
}, 1000);
return () => clearInterval(timer);
}, [isOn]);
return <div>室温: {roomTemp}°C | 设定: {temp}°C</div>;
}useEffect 依赖数组速查:
useEffect(() => { ... }, [a, b]) → a 或 b 变化时执行
useEffect(() => { ... }, []) → 只在挂载时执行一次
useEffect(() => { ... }) → 每次渲染都执行(少用)