幾天前我在考慮在我的情況下使用反應。案件很簡單:我有對象的列表,它處理像上面例子中的快速更新:反應CPU使用率(快速更新)
var ListItem = React.createClass({
render: function() {
return (
<tr>
<td>{this.props.data.sign}</td>
<td>{this.props.data.a}</td>
<td>{this.props.data.b}</td>
<td>{this.props.data.time}</td>
</tr>
);
}
});
var List = React.createClass({
getInitialState: function() {
return { items: list };
},
tick: function() {
var index = Math.floor(Math.random() * 100);
var randItem = getRandomItem();
var item = this.state.items[index];
item.sign = randItem.sign;
item.a = randItem.a;
item.b = randItem.b;
item.time = randItem.time;
this.setState({items: tick(this.state.items)});
},
componentDidMount: function() {
this.interval = setInterval(this.tick, 0);
},
render: function() {
return (
<table>
{this.state.items.map(function(item){
return <ListItem key={item.i} data={item} />
})}
</table>
);
}
});
這是一個完整鏈接例子,我已經準備了:
https://jsfiddle.net/zsjmp3ph/
的問題是我的CPU佔用了大約25-30%的使用量。我已經在其他機器上測試過,它是一樣的。 React很正常嗎?在我看來,這很奇怪,但我在圖書館是全新的,所以我想問更多有經驗的人。告訴我,如果我做錯了什麼。提前致謝。
Good point Capaj! 0ms(10ms)的間隔會產生頁面更新不切實際的情況。 requestAnimationFrame()會有所幫助,但是如果頻率爲**,那麼我建議將它與setTimeout()結合使用,以便將100ms週期內的所有更新推遲到單頁重繪。 – NicolaeS