- 惰性初始 state
- useEffect
- 传入空的依赖数组 [],意味着该 hook 只在组件挂载时运行一次,
- 返回的是一个取消订阅的函数
- 第二个参数是依赖项,只有在依赖项改变的时候数据才会改变
function App(props) {
const [number1, setNumber1] = React.useState(0);
const [state, setState] = React.useState(() => someExpensiveComputation(props));
React.useEffect(
() => {
const subscription = props.source.subscribe();
return () => {
subscription.unsubscribe();
};
},
[props.source],
);
React.useEffect(
() => {
const subscription = props.source.subscribe();
return () => {
subscription.unsubscribe();
};
},
[],
);
const handleClick = () => {
setNumber1(number1 + 1);
}
return (
<div>
<p>number1:{number1}</p>
<button onClick={handleClick}>+</button>
</div>
)
}