import React, { useState, useEffect } from 'react';
// 观察者函数
const observer = (newValue) => {
console.log(`Subject changed to ${newValue}`);
};
const SubjectComponent = () => {
// 使用useState创建一个状态变量
const [subject, setSubject] = useState('Initial Value');
// 使用useEffect来模拟观察者模式
useEffect(() => {
// 当subject变化时,调用观察者函数
observer(subject);
}, [subject]); // 依赖数组中包含subject,这样每当subject变化时,useEffect都会执行
// 更新subject的方法
const updateSubject = () => {
setSubject('Updated Value');
};
return (
<div>
<p>Subject: {subject}</p>
<button onClick={updateSubject}>Update Subject</button>
</div>
);
};
export default SubjectComponent;