在日常的React开发中,我们常用的组件API有以下这些
- setState:状态更新,组件渲染,这个方法并不是重新替换原来的State,而只是更新原来的State。
- forceUpdate:强制更新组件。
- findDOMNode:手动查找dom组件。
首先setState在说说React的事(四)State和Props中已经做了说明,这里就不再赘述。
forceUpdate
当我们想刷新组件的时候,这时候就可以使用forceUpdate了,例如如下🌰,当我们点击按钮的时候组件将会刷新:
import React from 'react';
class App extends React.Component {
constructor() {
super();
this.forceUpdateHandler = this.forceUpdateHandler.bind(this);
};
forceUpdateHandler() {
this.forceUpdate();
};
render() {
return (
<div>
<button onClick = {this.forceUpdateHandler}>FORCE UPDATE</button>
<h4>Random number: {Math.random()}</h4>
</div>
);
}
}
export default App;
findDOMNode
对于DOM的操作,我们可以使用ReactDOM.findDOMNode()方法,但在使用之前必须import react-dom库。
import React from 'react';
import ReactDOM from 'react-dom';
class App extends React.Component {
constructor() {
super();
this.findDomNodeHandler = this.findDomNodeHandler.bind(this);
};
findDomNodeHandler() {
var myDiv = document.getElementById('myDiv');
ReactDOM.findDOMNode(myDiv).style.color = 'green';
}
render() {
return (
<div>
<button onClick = {this.findDomNodeHandler}>FIND DOME NODE</button>
<div id = "myDiv">NODE</div>
</div>
);
}
}
export default App;