今天在看useReducer这一章时,看生气了。
文档在介绍引入useReducer的步骤,实现了reducer函数以后,它说了这样一段话:
由于 reducer 函数接受 state ( tasks )作为参数,因此你可以 在组件之外声明它。这减少了代码的缩进级别,提升了代码的可读性。
此时,还没有介绍到写完 reducer 函数后,如何在函数组件内结合useReducerhook 进行使用。
所以我突然陷入了一个非常大的困惑:
为什么 reducer 函数接受 state 作为参数,它都使用到了组件的 state ,还可以在组件之外声明它呢?
后来我才明白,这句话的意思其实是想表达:由于 reducer 函数只通过参数获取当前状态,它不依赖组件内部的任何变量,因此你可以把它声明在组件外部,避免每次渲染都重新创建。
就感觉文档写得不能细读,一细读,这个因果关系就非常牵强,感觉文档作者是一堆 API 摆在他的面前,他不得不,把这一切写通,写得合理。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.