1.初始化2.第一次渲染3.后续渲染4.事件处理实际上是在外部添加了一个全局数组,不会随着函数组件的销毁而销毁,创建而创建hook必须写在顶层 1.初始化把数据放在一个全局数组中,确定一个游标,用于记录数据的位置 2.第一次渲染调用useState时,第一次渲染,会将一个set函数放入setters数组中,并且把初始state放入到state数组中. 3.后续渲染每一次重新渲染,光标都会重新设为0,然后从对应的数组中读取状态和set函数 4.事件处理每次调用set函数时,set函数将会修改state数组中对应的状态值,这种对应的关系是通过cursor光标来确定的