したがって、fetch()のJSON APIをフェッチしてReactjsでレンダリングしようとしています。それは実際に小さなjsonのリストで100項目までかなりうまく動作します。しかし、900アイテム以上のjsonリストで同じことをしようとすると、かなり時間がかかり、サイト全体がそれ以上反応しなくなり、かなり遅くなります。JSONを反復処理すると反応が極端に遅くなる
ここで私は何が間違っていますか?サイトをより速くするために何ができるのですか?これは、問題がどこにあるか提供されているコードからも明らかではありません
import React from 'react';
import API from '../modules/api';
import { Grid, Row, Col } from 'react-flexgrid';
import Blazy from 'blazy';
import _ from 'lodash/collection';
class Library extends React.Component {
constructor() {
super();
this.state = {
library: undefined,
};
}
componentDidMount() {
API.getLibrary(this.props.params.user, (list) => {
this.setState({
library: _.sortBy(list, 0),
});
});
}
render() {
var bLazy = new Blazy();
if (this.state.library) {
return (
<div className="content">
<Grid>
<Row>
{this.state.library.map(function(entry, index) {
return (
<Col key={index} xs={6} md={2}>
<Card>
<CardTitle>{entry[0]}</CardTitle>
</Card>
</Col>
);
})}
</Row>
</Grid>
</div>
);
}
return (
<div>
Loading
</div>
);
}
}
export default Library;
なぜdownvoteであなたのリストを変更しますか? – nrabinowitz