![]() | 1 zzuieliyaoli 2020-07-10 19:58:06 +08:00 ![]() 没毛病,可以这样搞 |
![]() | 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 35aZ4P8mT576683q 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 35aZ4P8mT576683q 2020-07-11 00:29:18 +08:00 直接 ReactDOM.render 手动渲染我是觉得很奇怪,如 2 楼所说,context 会丢失,不能很直接的表示父子关系. 如果子组件必须在父亲 did mount 之后才可以渲染的话也很简单,父组件加个状态 mounted, jsx 大概是这样 <Parent> {mounted && <Child /> } </Parent> |
![]() | 9 35aZ4P8mT576683q 2020-07-11 00:52:13 +08:00 via Android 打个广告,我正在找 react 相关的工作,北京,1 年经验,目前在这个论坛疯狂试探 |
![]() | 10 theprimone 2020-07-11 09:52:43 +08:00 这操作可太秀了,都这些圈子是图啥 _(:3J∠)_ |