useState首次渲染
初始化了一个hooks,并且将其追加到链表结尾。严格保证hooks的顺序。
将mountState 和 updateState 放在一起就是:mountState (首次渲染)构建链表并渲染,updateState 依次遍历链表并渲染。
hooks 的渲染是通过"依次遍历"来定位每个 hooks 内容 。如果前后两次独到的链表在顺序个出现差异,那么渲染的结果自然是不可控的。
所以Hooks 的本质其实是链表。
就像构建了个长度确定的数组,数组中 每个坑位都对应这一块确切的信息。后续每次从数组里取值时,只能够通过索引来定位 。
必须按照顺序调用从根本上来说是因为 useState 这个钩子在设计层面并没有"状态名称"这个动作,也就是每生产一个新的状态,react并不知道这个状态名字叫啥,所以需要通过顺序来索引到对应的状态值
在这里插入图片描述