1.字符串形式的ref
用的很少,以后可能会停用
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>ref</title>
</head>
<body>
<!--准备好一个容器-->
<div id="test"></div>
<!--引入react核心库-->
<script src="../js/react.development.js"></script>
<!--引入react-dom,用于支持react操作dom-->
<script src="../js/react-dom.development.js"></script>
<!--引入babel,用于将jsx转为js-->
<script src="../js/babel.min.js"></script>
<!--引入prop-types,用于对组件标签属性进行限制-->
<script src="../js/prop-types.js"></script>
<script type="text/babel">
class Demo extends React.Component {
// 展示左侧输入框的数据
showDate = () => {
// this.refs中拿到input1
const {input1} = this.refs
alert(input1.value)
}
// 展示右侧输入框的数据
showDate2 = () => {
const {input2} = this.refs
alert(input2.value)
}
render() {
return (
<div>
<input type="text" ref="input1" placeholder="点击按钮提示数据"/>
<button onClick={this.showDate}>点我提示左侧的数据</button>
<input onBlur={this.showDate2} ref="input2" type="text" ref="input2" placeholder="失去焦点提示数据"/>
</div>
)
}
}
ReactDOM.render(<Demo/>,document.getElementById('test'))
</script>
</body>
</html>
2.回调函数形式的ref
class Demo extends React.Component {
// 展示左侧输入框的数据
showDate = () => {
// this.refs中拿到input1
const {input1} = this
alert(input1.value)
}
// 展示右侧输入框的数据
showDate2 = () => {
const {input2} = this
alert(input2.value)
}
render() {
return (
// 回调函数,这个this指的是Demo对象的this,input1是取的名
<div>
<input type="text" ref={c => this.input1 = c} placeholder="点击按钮提示数据"/>
<button onClick={this.showDate}>点我提示左侧的数据</button>
<input onBlur={this.showDate2} ref={c => this.input2 = c} type="text" placeholder="失去焦点提示数据"/>
</div>
)
}
}