<!DOCTYPE html>
<html>
<head>
<script src="../build/react.js"></script>
<script src="../build/react-dom.js"></script>
<script src="../build/browser.min.js"></script>
</head>
<body>
<div id="example"></div>
<script type="text/babel">
var MyComponent = React.createClass({
handleClick: function() {
this.refs.myTextInput.focus();
},
render: function() {
return (
<div>
<input type="text" ref="myTextInput" />
<input type="button" value="Focus the text input" onClick={this.handleClick} />
</div>
);
}
});
ReactDOM.render(
<MyComponent />,
document.getElementById('example')
);
</script>
</body>
</html>
01、组件并不是真实的DOM节点,而是存在于内存之中的一种数据结构,叫做虚拟DOM (virtual DOM)
只有当它插入文档以后,才会变成真实的DOM。根据React的设计,所有DOM的变动,都先虚拟DOM上发生,
然后再将实际发生变动的部分,反映在真实DOM上,这种算法叫DOM diff.
02、从组件获取真实DOM的节点,用到 ref属性。this.refs.[refName] 会返回这个真实DOM节点。