componentdidmount componentdidmount和useeffect
react中的生命周期函数
作用:如果这个函数调用的setState改变了组件的某些状态,react会等待setState完成后再渲染组件。注意:子组件也有componentWillMount函数,在父组件的该函数调用后再调用。

首先,我们先了解一下 React 的生命周期钩子函数。如图所示,我们可以将其分为俩个阶段--- render 阶段执行和 commit 阶段执行。
这个生命周期方法在ErrorBoundary类中使用。实际上,如果使用这个生命周期方法,任何类都会变成ErrorBoundary。这用于在组件树中出现错误时呈现回退UI,而不是在屏幕上显示一些奇怪的错误。
React的生命周期从广义上分为三个阶段:挂载、渲染、卸载,因此可以把React的生命周期分为两类:挂载卸载过程和更新过程。
我们知道,react函数每次更新组件(或者数据)都需要 this.setState(state) 来进行,这里补充每次调用 setState() 结束之后都会自动调用 componentDidUpdate() 钩子,因此,如果有每次更新都要进行的行动都可以写在这个钩子中。
useEffect使用简述
1、useEffect()的作用就是指定一个副效应函数,组件每渲染一次,该函数就自动执行一次。组件首次在网页 DOM 加载后,副效应函数也会执行。
2、useEffect用于处理组件中的effect,通常用于请求数据,事件处理,订阅等相关操作。
3、使用 useEffect 完成副作用操作。赋值给 useEffect 的函数会在组件渲染到屏幕之后执行。你可以把 effect 看作从 React 的纯函数式世界通往命令式世界的逃生通道。
4、副作用钩子:用于处理组件中的副作用,用来取代生命周期函数。
ComponentDidMount可以return吗?
React就是js的语法,break是用来跳出for和while循环的。没有退出React这个说法,当运行完render()就是画完了react控件(可能还会进 componentDidMount等方法,参见组件生命周期),如果要在render()中途退出,需要用return。
是不是相当于生命周期中的 componentDidMount() 呢?而useEffect()下的return,一般写在第一个参数的异步操作后,相当于 componentWillUnmount() ,在组件卸载前执行,做收尾工作。
表示的是它不监听页面数据的变化,只有在页面初始化和销毁之前会执行; 执行的是类似于class组件的componentDidMount和componentWillUnmount两个生命周期;监听第二个参数数组内所传的值,当对应的state有更新时触发。
在这两个生命周期只要视图更新就会触发,因此不能再这两个生命周期中使用setState。否则会导致死循环。 componentDidUpdate生命周期在shouldComponentUpdate返回true后触发。
执行:componentWillMount调用之后, componentDidMount调用之前。作用:渲染挂载组件。