2015-08-03 73 views
0

我創建了一個包含ReactJS的元素,並將它添加到div容器中,然後使用jQuery.remove()刪除了相同的元素。Unmounting ReactJS元素

我需要卸載用React創建的節點嗎?

任何幫助將不勝感激!

回答

3

是的,你應該這樣做。您可以通過刪除元素

React.unmountComponentAtNode(document.getElementById('divsId')); 

其中您正在刪除元素的div必須是您原來附加到的元素。

+0

只是出於好奇,如果你不這樣做會發生什麼? –

+1

我想,但如果我錯了,不要殺了我 - 如果你沒有卸載它,元素會不斷接收狀態更新的更新,這會降低頁面性能。 @andrerpena – baao

1

干擾DOM會導致不必要的重新繪製和重繪,這是昂貴的過程。最好的方法是設置一個標誌,像這樣:

getInitialState() { 
isVisible: false 
} 

toggleVisiblity() { 
var {isVisible} = this.state 
this.setState({isVisible: !isVisible}) 
} 

render() { 
if(isVisible) 
    var display = <h2> Your content </h2> 
return(
    <button onClick={this.toggleVisibility}> Click here </button> 
    {display} 
) 
} 

當ISVISIBLE是假的,自動做出反應,並卸載當它是真的,它安裝。這是一個很好的做法,甚至可以添加動畫。