千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  应聘面试  >  html5面试题  > 说说在使用Hooks的过程中,需要注意什么

说说在使用Hooks的过程中,需要注意什么

来源:千锋教育
发布人:syq
时间: 2022-11-16 16:58:53 1668589133

  1 首先注意到就是 useState

  里面方法是异步的,所以不要在后面连续调用,由于react方法是批量异步调用,并不是每次调用修改方法都执行,所以需要用到callback写法 const [count, setCount] = useState(0); const add = () => { setCount(count + 1); setCount(count + 1); setCount(count + 1); setCount(count + 1);

  // 就算执行多次 其实还是会只执行一次

  //class组件是用一样的 }; 修改后 const add = () => { setCount(count => count + 1);

  //这种回调函数的写法 setCount(count => count + 1); setCount(count => count + 1); setCount(count => count + 1);

  // class组件 this.setState(prev=>({count: prev.count})) };

在使用Hooks的过程中

  2 由于useState的是异步的,不要在修改后直接使用数据。

  可以先修改数据,判断数据,也可以利用useEffec,useMemo等等通过监听数据执行 const [count, setCount] = useState(0); const add = () => { setCount(count + 1); if(count>=10) { // 一个逻辑这样的写的话会执行上一次吃结果} }; 正确使用

  1 const add = () => { let n = count +1 if(n){ //逻辑 } setCount(n) }; 正确

  2 : const add = () => [ setCount(count+1) ] useEffect(()=>{ // 这里是逻辑 },[count])

  3 useEffect hook的使用

  useEffect 这个hook的使用,每一个消耗性能的内容都可以通过return 来消除 useEffect(()=>{ // 逻辑1 return ()=>{ // 清楚逻辑1的副作用 } },[监听的值])

  4 如果子组件是函数组件需要利用useImperativeHandle ,forWard

  useRef 可以获取组件的数据,也可当常量的值来使用,注意获取数据使用的时候函数组件特别需要注意,如果子组件是函数组件需要利用useImperativeHandle ,forWard

tags:
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT