React.forwardRef真是个好东西
5 年前
之前在 @Dell Lee 的一篇文章中看到说没有办法传递ref到一个functional stateless component,当时十分naive的项目中实验了一下,以为能够传递ref,结果发现是因为我的疏忽,这个组件上面还有一层HOC,而这个HOC不是functional stateless component我误以为能够传递ref。不过也在探讨过程中发现只要名字不是ref的话其实就可以通过props进行传递。
不过这一切都将成为历史,伟大的fb在react 16.3中新加了一个React.forwardRef函数使这一切变得非常符合我的口味!
- 子组件应该自我包装好,而不应该影响外界对于这个组件的通用认知。例如我写一个component,而这个component不能接收props,这种在我的编程美学中是难以接受的。
- HOC应该在不改变原组件暴露接口情况下装饰新的功能,或改变原有功能。例如我写一个Dialog Component,ref应该透过HOC传入到Dialog上,而不是在HOC上。
这个新的api使我非常舒服。
经过这个api包装之后,ref再也不会难为人了。
发布于 2018-05-19 11:37