Dea*_*ool 1 javascript ecmascript-6 reactjs
在一次采访中,一位面试官问我,在一个简单的 React 应用程序中,您应该在哪里进行 API 命中?意义in which life-cycle method在Class-Component。我知道答案是ComponentDidMount- 因为这是我们获得完整渲染 dom 的第一个生命周期方法,这意味着 dom 现在准备好了!然后他问,但为什么不在comonentDidUpdate?
现在,我告诉他我在某处读到的内容,我不知道这个问题的确切答案——除了 ComponentDidMount 首先运行,所以让它在那里。
现在,有人可以告诉我我的答案是否正确吗?还是我们应该在 ComponentDidUpdate() 中进行 API 命中?
我很迷惑。好心,有人用推理解释一下吗?提前致谢!
这取决于您想要调用 API 的时间:
componentDidMountcomponentDidUpdate编辑:
可以使用useEffect钩子在功能组件内处理相同的场景,如下所示:
1- 仅在组件呈现与以下相同时第一次运行componentDidMount:
useEffect(() => {
// Run only once when the component renders
}, []); // Pass empty array as dependencies
Run Code Online (Sandbox Code Playgroud)
2- 每次通过 props 更改或本地 state 更改渲染组件时运行,与componentDidUpdate不比较之前和当前的 props 相同:
useEffect(() => {
// Run every time the component re-renders including the first time
}); // Do NOT pass array dependencies
Run Code Online (Sandbox Code Playgroud)
3-仅在特定道具更改时运行,componentDidUpdate与道具比较相同:
useEffect(() => {
// Run only when the component prop1 and prop2 changes
}, [prop1, prop2]); // Pass props as array dependencies
Run Code Online (Sandbox Code Playgroud)
参考:使用效果挂钩
| 归档时间: |
|
| 查看次数: |
75 次 |
| 最近记录: |