0
我建立从某个类别显示新闻的成分。一些页面可能包含100篇文章,大约100多篇文章。反应并绘制数据的大部分
我目前的做法是下载50篇文章的一部分,并将其呈现在<NewsListPortion>
简单(无状态,仅包含render
)组件。但是,当这些部分保持堆叠时,我会重新渲染已经加载的部分。这不是一个表现如何?
我的代码看起来如下:
render() {
if(this.state.loaded) {
return (
<div className="news-list__wrapper">
{this.data.map(p => {
const key = `${p.page}-${p.offset}`;
if (p.data.length > 0) {
return (
<NewsListPortion key={key} page={p.page} offset={p.offset} data={p.data} />
)
}
})}
{this.state.progress ?
<img src={loader} alt="" />
:
this.state.finished ?
<div><hr />koniec</div>
:
<button id="load-more-news" onClick={this.loadNews.bind(this)}>Wczytaj więcej</button>
}
</div>
)
} else {
return (
<img src={loader} alt="" />
)
}
}
this.data
是由对象的数组,像这样:
[
{
page: 1,
offset: 1,
data: [{ // 50 articles }]
},
{
page: 2,
offset: 1,
data: [{ // 50 articles }]
}
]
所以,再一次,我关心这里是性能 - 重新渲染,每次都一个新的portfion似乎是一个坏主意,但我不知道如何以任何其他方式做到这一点。