自定义Hooks
优点有二:
—是方便进行逻辑复用;
二是帮助关注分离。
创建方式:
函数名 以use开头的,并且函数体内使用的原生hooks.
使用hooks的好处之一是可以修改组件的state,让页面更新,但是常规的工具函数类并不能做到更新页面.
复杂状态管理
怎么使用最优与最合理的方式去管理你的应用程序状态?
原则一:在保证state完整性的同时,保证状态最小化
1.减少将组件state当做变量来使用,2.某些数据如果能够依据已有的state计算得到的话,就不要另起一个state去保存计算结果.
实现思路:开发一个功能时,按照React状态驱动UI的思想,首先考虑的是整个功能有哪几个状态,然后再定义一个新的状态的时候,再三拷问自己,这个状态必须定义吗?能否通过计算得到?
原则二:避免中间状态,确保唯一数据源,
保证组件传进来的数据源发生改变时,组件内部使用了这个数据的状态也要更新过来,例子就是url的参数发生变化,
但是组件却并没有监听到对应的变化做出改变.正确的做法是使用useSearchParam这个钩子来监听参数的变化.