我目前已经开始学习 React.js,我想知道 React 如何监听状态变化?
我的意思是我知道 Javascript 中没有任何用于跟踪变量更改的事件侦听器,而且我很确定我们无法在 Javascript 中侦听本机中的变量更改(不使用间隔来检查更改)...
但是在 React 中,如果您更改 状态 的属性,它会立即发现更改?!
它是如何在 React 中实现的?
答案 0 :(得分:3)
React 根本不会被动地监听状态变化。它知道状态改变的唯一方法是因为你明确告诉 react 改变状态。在类组件中,这是通过 this.setState
:
class Example extends React.Component {
state = {
name: 'valentina';
}
componentDidMount() {
setTimeout(() => {
this.setState({ name: 'jebediah' });
}, 1000);
}
// ...
}
在函数组件中,使用 useState
返回的状态设置器函数:
const Example = (props) => {
const [name, setName] = useState('valentina');
useEffect(() => {
setTimeout(() => {
setName('jebediah');
}, 1000);
}, []);
// ...
}