【发布时间】:2020-06-11 16:59:56
【问题描述】:
我想知道在组件中使用 useEffect 钩子和自定义钩子的黑白区别。
例如
如果我有一个功能组件(Component)并在里面直接使用useEffect钩子
import React,{useEffect} from 'react';
function Component(){
useEffect(()=>{
//some code //callback fires after component renders
},)
return (<div>Component</div>)
}
如果创建自定义钩子(useCustomHook)
import React,{useEffect} from 'react';
function useCustomHook(){
useEffect(()=>{
//some code //this callback also get fired after component renders
})
}
现在如果我在组件中使用这个自定义钩子
import useCustomHook from 'customhook';
import React,{useEffect} from 'react';
function Component(){
useCustomHook();
return(<div>Component</div>)
}
我想知道
useEffect 钩子是否与Component 相关,因此它的回调仅在Component 渲染后运行,因为在使用useCustomHook 时,它是在Component 之外声明的,即它在自定义内部钩子,但也只有在 Component 呈现后才会调用回调函数,
那么useEffect和Component之间有什么关系吗,所以useEffect的回调只有在Component渲染之后才会被调用,无论useEffect是在内部还是外部声明的Component 即(使用CustomHook)
【问题讨论】:
标签: javascript reactjs react-hooks use-effect