当前位置: 首页 > news >正文

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。


http://www.mrgr.cn/news/1369.html

相关文章:

  • Linux:进程替换
  • Linux:CentOS配置
  • LinuX下ETCD安装、配置、命令
  • Redis分布式锁
  • Kubernetes的快速安装
  • 旅游网站
  • 工 厂设计模式
  • 【SAP HANA 39】HANA 中的 IFNULL() 和 COALESCE() 函数的作用
  • 设计模式 适配器模式
  • 鸿蒙HarmonyOS开发:用户通知服务Noification的详细使用指南
  • sed awk 第二版学习(一)—— sed 与 awk 基本操作
  • 贝叶斯推理:分步指南
  • WPF-实现多语言的静态(需重启)与动态切换(不用重启)
  • 设计模式实战:数据分析系统的设计与实现
  • 2024新型数字政府综合解决方案(六)
  • C#中的多线程
  • 【数据结构】二叉树篇
  • 对react组件和组件化理解
  • Java项目集成RocketMQ
  • 《Docker:实现开发环境一致性与高效部署的利器》