ThatManK Mobile Article
回调函数形式的ref
19_回调函数形式的ref
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>1_字符串形式的ref</title>
</head>
<body>
<!-- 准备好一个"容器" -->
<div id="test"></div>
<!-- 引入react核心库 -->
<script type="text/javascript" src="./js/react.development.js"></script>
<!-- 引入react-dom, 用于支持react操作DOM -->
<script
type="text/javascript"
src="./js/react-dom.development.js"
></script>
<!-- 引入babel, 用于将jsx转为js -->
<script type="text/javascript" src="./js/babel.min.js"></script>
<script type="text/babel">
// 创建组件
class Demo extends React.Component {
// 展示左侧输入框的数据
showData = () => {
const { input1 } = this;
alert(input1.value);
};
// 展示右侧输入框的数据
showData2 = () => {
const { input2 } = this;
alert(input2.value);
};
render() {
// c 就是当前的节点, 赋值给 input1
// 把这个节点放在组件实例自身上, 命名为 input1
// 回调形式的函数, 没有this, 往上找, 就是实例自身了
return (
<div>
<input
ref={(c) => (this.input1 = c)}
type="text"
placeholder="点击按钮提示数据"
/>
<button onClick={this.showData}>点我提示左侧的数据</button>
<input
onBlur={this.showData2}
ref={(c) => (this.input2 = c)}
type="text"
placeholder="失去焦点提示数据"
/>
</div>
);
}
}
// 渲染组件到页面
ReactDOM.render(<Demo a="1" b="2" />, document.getElementById("test"));
</script>
</body>
</html>