我遇到了嚴重的性能問題。我與2000相當大的DOM結構列表項的列表中的應用程序時,我改變一個項目列表中的分量是這樣的:反應 - 更改一個列表項時出現嚴重的性能問題
changeOne:function(){
var permTodos = this.props.todos;
permTodos[Math.floor((Math.random() * 5) + 0)].todo=((Math.random() * 50) + 1);
this.setState({ todos: permTodos });
},
它重新渲染所有的列表項的虛擬DOM表示,這真的很慢。同樣的事情在Angular1中完成的速度大約快40倍。我試圖實現shouldComponentUpdate列表項
shouldComponentUpdate:function(nextProps, nextState){
return this.props.todo!==nextProps.todo;
},
但this.props.todo相同nextProps.todo所以沒有什麼改變。我已經在這個小提琴https://jsfiddle.net/2Lk1hr6v/29/中重新創建了我的應用程序的迷你版本,我希望能夠幫助我解決這個不幸的情況。
您可能不應該同時顯示所有項目。只顯示你需要的。這在React中很容易實現。你可以使用'react-virtualize'這樣的庫或者自己動手 – BravoZulu