大牛文章推荐
从开始用 react hook 到现在有一段时间了,一直没太理解 hook 的好处在哪里,感觉就是另外一种写 class 的方式,所以仍然按照写 class 的思路在写 hook。
直到最近看了蚂蚁金服的这篇技术分析,有了一种醍醐灌顶的感觉。原来 hook 应该这么用啊,确实简单多了。文章推荐给大家。
setState 和 useState
本来写到这就结束了,恰巧又遇到了一个 hook 相关的问题,感觉也很不错,分享给大家。
大家都知道 setState 是个异步的过程,setState 结束后立马获取 state 数据可能还是更新之前的。解决方法就是给 setState 传第二个参数,该参数是个函数,里面可以拿到更新后的 state。比如这种:
1 | handleChangeShare (type, value) { |
当我们用 useState 来改写时怎么处理呢,useState 也是个异步的过程,但是没有第二参数。怎么解决呢?
答案是用 useEffect,废话少说上代码:
1 | useEffect(() => { |
是不是很简单啊,转换一下固有思路,不要用旧的思路来写 react hook。之前一直把 useEffect 当成 componentDidMount 或者 componentDidUpdate 来用,只用来操作 dom 或处理网络请求,看来是把 useEffect 小瞧了。
react 的官方文档里写的很详细,有时间还是要仔细看看。