前言 自 React16.8 正式发布React Hook之后,已经过去了5个版本(本博客于React 16.13.1版本时发布)。自己使用Hook已经有了一段时间,不得不说在最初使用Hook的时候也进入了很多误区。在这篇文章中,我会抛出并解答我遇到的一些问题,同时整理对Hook的心得理解。 1. Hook的执行流 在解释后续内容之前,首先我们要明确Hook的执行流。 我们在写 Hook Component 的时候,本质是 Function Component + Hook ,Hook只是提供了状态管理等能力。对 Function Component 来说,每一次渲染都会从上到下 将所有内容重新执行一次,如果有变量,就会创造新变量 。 来看一个简单的例子 // father.js import Child from './child' ; function Father ( ) { const [num, setNum] = useState( 0 ); function handleSetNum ( ) { setNum(num+ 1 ); } return ( < div > < div onClick = {handleSetNum} > num: {num} </ div > < Child num = {num} > </ Child > </ div > ); }