卸载ReactJS元素

时间:2015-08-03 12:07:06

标签: reactjs

我已经使用ReactJS创建了一个元素并将其附加到div容器,然后使用jQuery.remove()删除了相同的元素。

我是否需要卸载使用React创建的节点?

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:3)

是的,你应该这样做。您可以通过

删除元素
React.unmountComponentAtNode(document.getElementById('divsId'));

你要删除元素的div必须是你原来追加它的那个。

答案 1 :(得分: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为false时,React会自动卸载,当它为true时,它会挂载。这是一个很好的做法,甚至可以添加动画。