07-02-React 类组件

2021-12-12  本文已影响0人  magic_pill

目标

内容

类组件

定义类组件

state 和 setState

事件

组件间通信

context api —— 跨组件通信

注:使用 context 时,shouldComponentUpdate 会失效。

生命周期函数

1、记忆:挂载阶段有四个生命周期、更新阶段有五个生命周期、卸载阶段有一个生命周期,4-5-1;render 之前的生命周期函数参数都是 nextProps、nextState,render 之后的生命周期函数参数都是 prevProps、prevState。
2、如果一次刷新,render 多次,一般有两种情况:第一、上面的三个潜藏优化点里面判断不正确,第二、hooks 里面的参数没有控制好。

总结
  1. 类组件的生命周期函数中,最好只在 componentDidMount 和 componentDidUpdate 中调用 setState;
  2. 类组件中,如果需要进行数据请求,官方建议只能在 componentDidMount 和 componentDidUpdate 两个生命周期函数中进行数据请求;
  3. 在 componentDidUpdate 中进行数据请求或其它行为之后调用 setState 方法,一定要把条件限定好;
  4. 在 React 中使用列表渲染,一定记得加 key;key 在 React 中的取值问题:列表中唯一、更新前后同一个元素的 key 不能发生变化;key 的作用:是给元素添加了一个身份标识,用于视图更新前后,判断这是否是同一个节点;
  5. 事件:事件定义类似于 JS 中的行间事件;尽量将事件处理函数声明在实例的属性中;React 中事件是一个合成事件,所以要注意和 JS 的时间处理函数在使用时有一些区别:React 的事件处理函数中,默认 this 指向 undefined;阻止默认事件,不能使用 return false,要使用 event.preventDefault();阻止冒泡:event.stopPropagation();
  6. setState 同步异步问题(批更新batchUpdate):在批更新可以监控到的地方——异步,监控不到的地方——同步;批更新可以监控到的地方:1.React 事件、2.生命周期函数;监控不到的地方:1.DOM 事件、2.异步函数中。
  7. 在 React 中要注意一个问题,父组件更新一定会引起子组件更新。
上一篇下一篇

猜你喜欢

热点阅读