1
zzuieliyaoli 2020-07-10 19:58:06 +08:00 1
没毛病,可以这样搞
|
2
ericls 2020-07-10 21:50:52 +08:00 via iPhone
手动 render? 会新建一个 tree 吧? 所有 context 会丢失的
|
3
hronro 2020-07-10 21:55:08 +08:00
贴代码吧。
听你的描述,感觉不像是正确的做法 |
4
chainchan OP |
6
liberty1900 2020-07-10 23:03:35 +08:00 via Android
代码写的好诡异,处理业务逻辑就处理业务逻辑,业务逻辑处理完产生的数据作为状态放到 UI 里。看代码是想每一次 render 的时候都去调用处理业务逻辑的函数,componentDidMount, componentDidUpdate 都调用处理业务逻辑的函数就完了。用函数组件就更简单了,组件本身是函数,如果不是复杂或者需要复用的逻辑,直接写在函数主体里
|
7
chainchan OP @liberty1900 #6 我目前这个做法:是在 componentDidMount, componentDidUpdate 都调用了 renderView, 只是没有放到 render 里面去做。完全是可以 work 的,而且 performance 也能够接受,render 10000 个 entity 的同时,点击、拖拽没有什么卡顿。
我是想知道,如果不把 renderView 放到 render 里面,是不是会违反 React 的设计原则?或者有没有什么可能的潜在问题? |
8
liberty1900 2020-07-11 00:29:18 +08:00
直接 ReactDOM.render 手动渲染我是觉得很奇怪,如 2 楼所说,context 会丢失,不能很直接的表示父子关系.
如果子组件必须在父亲 did mount 之后才可以渲染的话也很简单,父组件加个状态 mounted, jsx 大概是这样 <Parent> {mounted && <Child /> } </Parent> |
9
liberty1900 2020-07-11 00:52:13 +08:00 via Android
打个广告,我正在找 react 相关的工作,北京,1 年经验,目前在这个论坛疯狂试探
|
10
theprimone 2020-07-11 09:52:43 +08:00
这操作可太秀了,都这些圈子是图啥 _(:3J∠)_
|