<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>获取真实的DOM节点</title>
<script src="../reactJs/react.development.js"></script>
<script src="../reactJs/react-dom.development.js"></script>
<script src="../reactJs/babel.min.js"></script>
<style>
</style>
</head>
<body>
<div id="root"></div>
</body>
<script type="text/babel">
/*
* React的组件并不是真实的DOM,而是存在于内存之中的一种数据结构,叫做虚拟DOM树.
* 只有当它插入文档之后,才会变成真实的DOM.
* 根据React的设计所有的DOM变动都现在虚拟DOM上变动,然后再将时间发生变动的地方反应在真实DOM上.这种算法叫DOM diff.它可以极大提高网页的性能表现.
*
* 因此我们获取的DOM节点是不真实的,要想在React中获取真实的DOM节点可以使用REF(VUE类似的)
* */
console.log(React.Component);
class GetRef extends React.Component {
constructor(props){
super(props);
this.inputClick = React.createRef();
this.handelClick = this.handelClick.bind(this);
}
handelClick(){
console.log(this);
console.log(this.refs);
this.refs.inputClick.focus();
}
render() {
return (
<div>
<div><input ref='inputClick'/></div>
<div><input onClick={this.handelClick}/></div>
</div>
)
}
}
ReactDOM.render(
<GetRef />,
document.getElementById("root")
)
</script>
</html>