Please enable JavaScript.
Coggle requires JavaScript to display documents.
react Hook (Effect Hook (需要清除的effect (原因:有一些副作用是需要清除的,比如说订阅外部数据源,…
react Hook
Effect Hook
作用
给函数组件增加了操作副作用的能力。它跟class组件中的componentDidMount,componentDidupdate和componentWillUnmount具有相同的用途,只不过合并成了一个api
无需清除的effct
useEffect
-
-
就是在告诉 React 在完成对 DOM 的更改后运行你的“副作用”函数,由于副作用函数是在组件中声明的,所以他们可以访问到组件的props和state.,
需要清除的effect
-
时机:清除effect的时机,React会在组件卸载的时候执行清除操作,effect在每次渲染的时候都会执行,所以React会在执行当前effect之前对上一个effect进行清除,这有利于避免bug以及在遇到性能问题是跳过这种行为
-
优化:在class应用中,我们通常需要使用各种生命周期来对数据进行清除,而对于一些class声明周期中,我们可以用componentDidUpdate来解决问题。在hook中我们可以用将要跟踪的值置为useEffect的第二个数组里的参数。对于只想执行一次的effect,可以传递一个空数组([])
-
自定义Hook
-
-
约束:自定义 Hook 更像是一种约定而不是功能。如果函数的名字以 “use” 开头并调用其他 Hook,我们就说这是一个自定义 Hook。 useSomething 的命名约定可以让我们的 linter 插件在使用 Hook 的代码中找到 bug
-
-
-
-
-
-
-