useState的使用法则

1、useState最好写到函数的起始位置, 主要是便于阅读
2、useState严禁出现在代码块(判断和循环等)中
3、useState返回的函数(数组的第二项), 这个函数的引用是不会变化的(优化性能)
4、如果使用函数改变数据, 若数据和之前的数据完全相等(使用Object.is), 则不会重新渲染, 由于Object.is是浅比较, 所以如果状态是一个对象的时候要小心操作了
5、如果使用函数改变数据, 传入的值不会和原来的数据进行合并而是直接进行替换(跟setState完全不一样), 所以在修改对象的时候, 我们要先将之前的对象保存下来
6、不要直接去改变state的值
7、如果要实现强制刷新组件的情况: 如果是类组件我们都会使用forceUpdate, 在函数组件中, 我们可以用useState来实现, 使用useState的改变state的函数传入一个空对象, 因为每次传入一个空对象的地址不一样所以一定会刷新
8、如果某些状态之间没有必然的联系, 应该分化为不同的状态而非合并成一个对象
9、和类组件一样, 函数组件的状态更改在某些时候是异步的(dom事件下), 如果是异步的更改, 则多个状态的更改会合并, 此时不能信任之前的状态, 而应该使用回调函数的方式改变状态
10、如果函数组件被卸载则表格被清空那么调用useState会被赋初值, 所以为了避免出现bug, 根据react渲染原理, 我们要尽量用style来控制元素的消失和隐藏

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值