React 的 hooks 中 useEffect 使用
不使用
class Demo extends React.Component { constructor(props) { super(props); this.state = { count: 0 } } componentDidMount() { this.timer = setInterval(() => { this.setState({ count: this.state.count + 1 }) }, 1000); } componentWillUnmount() { clearInterval(this.timer) } render() { return ( <> <div>{this.state.count}</div> </> ); } }
使用
function Demo() { let [count, setCount] = useState(0) useEffect(() => { let timer = setInterval(() => { setCount(count + 1) }, 1000); return () => { clearInterval(timer) } }) return ( <> <div>{count}</div> </> ); }
清除副作用和跳过更新
function Demo() { let [count, setCount] = useState(0) useEffect(() => { setInterval(() => { setCount(count => count + 1) }, 1000) }, []) return ( <> <div>{count}</div> </> ); }
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
上一篇: 彻底掌握 useRef 的使用技巧
下一篇: 不要相信一个熬夜的人说的每一句话
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论