我刚开始写一些自定义的hooks,有个问题浮现在脑海里,是应该以数组或对象的形式返回一组值呢?
useState为什么返回一对值的数组而不是具有两个属性的对象?
我感觉我读过相关内容,但无法回忆起来在哪里读到的。
谢谢。
我刚开始写一些自定义的hooks,有个问题浮现在脑海里,是应该以数组或对象的形式返回一组值呢?
useState为什么返回一对值的数组而不是具有两个属性的对象?
我感觉我读过相关内容,但无法回忆起来在哪里读到的。
谢谢。
进一步解释@Vishwas 评论的内容,它与命名有关。
这在useState文档的注释中简要提到。
当我们使用
useState
声明状态变量时,它会返回一个包含两个元素的数组。第一个元素是当前值,第二个元素是一个函数,用于更新该值。直接使用索引[0]
和[1]
访问它们可能会有些困惑,因为它们具有特定的含义。这就是为什么我们使用数组解构的原因。
const [someValue, someUpdateFunction] = useState(0);
array[0]
处的数据作为当前值进行处理,将array[1]
处的数据作为更新函数进行处理。只有位置很重要,而不是名称。当开发人员实现useState
时,他们可以为这些位置上的值提供有意义的名称。