通俗一点的解释
1、useState
向组件内部提供一个state,一个可以更新他的函数,可以事件直接执行,并且新的state和旧的state不会合并,类似于this.setState
点击完成之后就加1
2、useEffect
接收两个参数,第一个参数为回调函数,第二个参数为一个数组,可以是空的数组,(dependencies,第二个参数的名字),执行时机,如果第二个参数为空的数组那么只会在页面加载完成之后执行一次,如果第二个参数里面有值,当数组里面的值发生改变的时候会再次执行回调函数
代码里面count定义的是useState(0),页面加载完成之后就是在useEffect里面执行了一次setCount,所以页面出来之后会是1
但是当你点击按钮的时候会执行setCount(count+1)之后,此时页面的数字应该现实为2对吧,但是你点击按钮之后就会发现他其实还是1
为什么点击完按钮还是1,1+1难道不等于2?
这个是因为count的数据改变了,变为2了,然后又触发了一次useEffect里面的回调函数setCount(1),把count从2又变为了1
useEffect中写setCount(count+1)这种类似的公式,第二个参数必须为空数组,不然当useEffect修改掉count的时候,第二个参数获取到count的状态改变之后再次执行setCount,然后第二个参数再次获取到count的变化,如此反复,就成死循环了,直到页面崩溃
React中Hooks方法总结
最新推荐文章于 2024-05-06 15:36:20 发布