在“索引”页面上,编辑1行时,所有行都将重新呈现(非常缓慢)。 在Ruby on Rails上使用Reactjs
使用: – ruby“2.3.1”gem“rails”,“5.0.0.1”gem“react_on_rails”,“〜> 6.3.2”
这是我的问题:
问题
单击复选框会将联系人添加到$$selectedContacts
,但随后每个联系人都会重新呈现,这非常慢
![联系人索引]
这是用户页面的图片:(一个简单的索引页面) http://take.ms/e7gXG
问题
- 如何在
Contact.jsx
正确使用shouldComponentUpdate
,以便联系行仅在更改后重新呈现? - 我应该在哪里使用容器? 感觉在
Contact.jsx
使用connect
可能不是最好的选择? - 任何其他建议
这是一个关于要点的链接: https : //gist.github.com/heyogrady/4ba880c7ecffe18fdb70ad2d56e034cc
-
更改
Contact
以扩展React.PureComponent
,这是使用纯渲染的最新方式。 ( docs ) -
容器组件通常是具有业务逻辑的组件,而表示组件是具有纯视图逻辑的组件。 Redux类型通过
connect
方法取代容器组件。 这是一个风格问题,但很多时候渲染集合只是connect
父节点,然后映射项目并将它们提供给未连接到Redux的哑组件,这很容易 -
通过将整个集合的数据传递给每个
Contact
,可以减轻纯渲染的有效性。 这意味着如果任何单个联系人的数据发生变化,那么所有联系人都将重新呈现,因为PureComponent无法知道哪些道具是相关的,哪些不相关。 因此,您应该只传递每个联系人需要的数据。 我写了一篇关于使用PureComponent时可能遇到的一些陷阱的快速博客文章 。