React 如何监听状态变化

时间:2020-12-24 21:39:33

标签: javascript reactjs

我目前已经开始学习 React.js,我想知道 React 如何监听状态变化?

我的意思是我知道 Javascript 中没有任何用于跟踪变量更改的事件侦听器,而且我很确定我们无法在 Javascript 中侦听本机中的变量更改(不使用间隔来检查更改)...

但是在 React 中,如果您更改 状态 的属性,它会立即发现更改?!

它是如何在 React 中实现的?

1 个答案:

答案 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);
  }, []);

  // ...
}