您的位置:首页 > 房产 > 建筑 > React概念理解

React概念理解

2024/10/6 8:31:48 来源:https://blog.csdn.net/qq_33715850/article/details/141258430  浏览:    关键词:React概念理解

1 useEffect

文章推荐

  1. https://segmentfault.com/a/1190000018639033
  2. https://juejin.cn/post/7044161793471545381

  useEffect(() => {console.log('====111111======');return () => {console.log('=======222222=======');};});在每次代码刷新时候都会打印111111和222222
const [state, dispatch] = useReducer((oldState, payload) => {if (payload.type === 'tick') {return {...oldState,count: oldState.count + oldState.step,};}return {...oldState,};},{ count: 0, step: 1, type: '' },);useEffect(() => {console.log('========111111======');const id = setInterval(() => {console.log('========222222======', state.count);dispatch({ type: 'tick' }); }, 1000);return () => {console.log('========333333======', state.count);clearInterval(id);};}, [dispatch]);<h1>{state.count}</h1>console.log('========111111======'); 只会执行一次,****说明每次返回的dispatch都是同一个函数。console.log('========222222======', state.count);会被多次执行,但是打印出来的state.count会一直是0 (因为Capture Value的原因)console.log('========333333======', state.count); 不会执行,页面其他state更新它也不受影响
页面其他state更新不会影响到上面useEffect内部执行。h1标签里面的值会正常一秒增加一次。可以把上面理解成一个小型的Redux。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com