Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 定制挂钩如何在引擎盖下工作?_Javascript_Reactjs_React Hooks - Fatal编程技术网

Javascript 定制挂钩如何在引擎盖下工作?

Javascript 定制挂钩如何在引擎盖下工作?,javascript,reactjs,react-hooks,Javascript,Reactjs,React Hooks,给定的自定义钩子有一个变量count和一个setCount函数,它返回count,另一个函数在引擎盖下使用setCount来更改count变量 我很想知道这是怎么回事。是因为函数useCounter创建了一个闭包吗 import {useState} from "react" function useCounter() { const [count, setCount] = useState(0) function increment() { setCount

给定的自定义钩子有一个变量count和一个setCount函数,它返回count,另一个函数在引擎盖下使用setCount来更改count变量

我很想知道这是怎么回事。是因为函数useCounter创建了一个闭包吗

import {useState} from "react"

function useCounter() {
    const [count, setCount] = useState(0)

    function increment() {
        setCount(prevCount => prevCount + 1)
    }

    return [count, increment]
}

export default useCounter

React将使用钩子的内部机制通过所有组件的所有渲染为您跟踪状态。解释它是如何工作的超出了SO答案的范围(不,这不是因为词汇闭包)。TL;博士,这是一些React巫毒魔法,很复杂。阅读源代码,从hooks代码开始:React将通过使用hook的内部机制跟踪所有组件的所有渲染状态。解释它是如何工作的超出了SO答案的范围(不,这不是因为词汇闭包)。TL;博士,这是一些巫毒魔法,很复杂。阅读源代码,从hooks代码开始: