react初体验

react hooks

什么是 reach hooks 呢?

hooks 钩子   作用: 为函数组件提升状态,生命周期等,原本class组件中才有的功能可以理解为通过hooks为函数组件钩如了class的特性

有哪些hooks函数呢?

useEffect ,useRef ,useState,useCallback,useMemo,useReducer,useContext,useLayoutEffect

如何让useEffect 支持 async await?

 useEffect 作为 Hooks 中一个很重要的 Hooks,可以让你在函数组件中执行副作操作。

(副作用理解:就是具有不确定性的操作,你可以理解为不纯,不纯就意味着带来副作用)

正经解释:在react 组件中执行数据获取,订阅 和手动修改DOM,我们统一把这些操作称为副作用

我们知道 effect function 应该返回一个销毁函数(return返回的 cleanup 函数),如果 useEffect 第一个参数传入 async,返回值则变成了 Promise,会导致 react 在调用销毁函数的时候报错**。

既然 useEffect 的回调函数不能使用 async...await,那我直接在它内部使用。

做法一:创建一个异步函数(async...await 的方式),然后执行该函数。

useEffect(()=>{
const asyncFun =async () =>{
    setpass(await mokCheck());
};
asyncFun();

,[]);

做法二:也可以使用 IIFE,如下所示:

useEffect(()=>{
(async () =>{
 setPass(await mockCheck());
})();

},[])

react 中可以做哪些性能优化?

  • 使用 shouldComponentUpdate,避免不需要的渲染,但是如果对于props 和state 做深比较,代价很大, 所以需要根据业务进行些取舍;在有子组件的情况下,为了避免子组件的重复渲染,可以通过父组件来判断子组件是否需要 PureRender。
  • 将props设置为数组对象:每一次调用react组件都会创建新组件,就算传入的数组或对象的值没有改变,他们的引用地址也会发生变化。
  • 将函数绑定移动到构造函数内:可以避免每次都绑定事件
  • 使用immutable 不可变数据,在我们项目中使用引用数据类型时,为了避免对元素数据的影响,一般是建议使用
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值