【发布时间】:2019-05-12 18:49:45
【问题描述】:
我一直在尝试 React Hooks,它们似乎确实简化了诸如存储状态之类的事情。但是,它们似乎通过魔术做了很多事情,我找不到一篇关于它们实际工作原理的好文章。
似乎很神奇的第一件事是,每次调用它返回的 setXXX 方法时,调用 useState() 之类的函数如何导致函数组件重新呈现?
当功能组件甚至无法在 Mount/Unmount 上运行代码时,useEffect() 之类的东西如何伪造 componentDidMount?
useContext() 是如何实际访问上下文的,它甚至如何知道哪个组件正在调用它?
这甚至还没有开始涵盖所有已经出现的第 3 方挂钩,例如 useDataLoader,它允许您使用以下...
const { data, error, loading, retry } = useDataLoader(getData, id)
当数据、错误、加载和重试发生变化时如何重新渲染您的组件?
对不起,很多问题,但我想大部分都可以总结为一个问题,即:
钩子后面的函数如何真正访问调用它的函数式/无状态组件,以便它可以记住重新渲染之间的内容并使用新数据启动重新渲染?
【问题讨论】:
标签: javascript reactjs react-hooks