有对 React 感到困惑的吗?

2021-02-20 10:36:10 +08:00
 sillydaddy
之前用 react 做点零散的界面,感觉很好用很神奇。现在用来开发一些自己的小项目,突然冒出来很多问题,才发现原来一直没理解它。
比如组件什么时候会被重新创建,而什么时候只是重新渲染?
什么时候用 props 什么时候用 state ?
React 内部是怎样比较前后两次 state 的差异的,会导致哪些组件重新渲染?
React 的版本更新还很快,自己对组件的生命周期的理解,到现在还没来得及理清楚。

有没有也曾跟我一样状态的?感觉要补补底层的知识了,不知道看点什么资料好呢?
4194 次点击
所在节点    React
25 条回复
azcvcza
2021-02-20 15:16:50 +08:00
@akasuv 如果是到了具体控制 dom 组件的表现的时候,useRef 会提醒你不能在整个的 function 组件上用,但是可以在 function 组件中 render 出来的 jsx 中的元素上绑,有些时候达不到想要的效果,需要用 forwardRef 和 useImperativeHandle 取代。例如多个大的相似表单,想要控制表单的 validate 行为的时候
Rocketer
2021-02-21 03:45:23 +08:00
@jmyz0455 刚开始学的话,还是别把 redux 掺和进来了。先试着尽量不用 redux,全用 hooks 解决,实在不行了再考虑 redux (实际上很少遇到非 redux 不可的项目)。

redux 是 react 早期还不太完善时的必备组件,现在还有很多人用只是因为老程序员们习惯了,并不代表它是必要的,甚至都不能算是一个好的开发实践。

redux 太重了,不仅拖慢开发速度,也拖慢运行速度,能不用还是尽量别用。
jmyz0455
2021-02-22 11:05:55 +08:00
@Rocketer 可能我看的教程落后了?我还没学到 Hooks,看看如何替代 Redux/Mobx 。
cgpiao
2021-02-22 14:47:32 +08:00
react 状态管理之难用想让人放弃。
huijiewei
2021-02-28 01:26:15 +08:00
react 啃了 1 个月

大致啃明白了

主要是网上的教程参差不齐,React 迭代了这么多版本,从开始的 createClass 到 ES 6 的 class 再到 HOC 的引入,Context 的引入,到最后的 Hooks 的大招。

如果不了解发展历史,光看着教程各种不同的写法就头大

个人建议,抛开第三方库,直接写 Function 组件,从 React Hooks 和 Context 走起。

状态管理基本上嵌套读写分离的 Context 都能搞定。太复杂了就引入 Recoil 和 Jotai 原子状态库。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/754501

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX