1 <!DOCTYPE html>
2 <html lang="en">
3
4 <head>
5 <meta charset="UTF-8">
6 <meta name="viewport" content="width=device-width, initial-scale=1.0">
7 <title>Document</title>
8 <script src="https://unpkg.com/react@16/umd/react.development.js" crossorigin></script>
9
10 <!-- 该文件向外暴露了一个对象 React-Dom -->
11 <script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js" crossorigin></script>
12 <script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
13 <script src="https://unpkg.com/prop-types@15.6/prop-types.js"></script>
14
15 </head>
16
17 <body>
18
19 <div id="app"></div>
20 <script type="text/babel">
21 class Study extends React.Component{
22 constructor(props){
23 super(props)
24 this.input3 = React.createRef()
25 {/*通过React.createRef()创建,一个createRef对象只能绑定一个ref,意思就说每绑定一个必须重新创建一个createRef对象*/}
26 }
27 render(){
28 return(
29 <div>
30 {/*通过字符串创建ref,官方并不建议使用这种方法因为会存在一些问题,后面可能会被移除*/}
31 { <input type="text" ref="input1" placeholder="字符串ref用法"/>}
32 {/*通过回调函数创建ref,*/}
33 <input type="text" ref={(c)=>{this.input2 = c;console.log(c)}} placeholder="回调函数ref的用法"/>
34 <input type="text" ref={this.input3} placeholder="createRef的用法"/>
35 </div>
36 )
37 }
38
39 }
40
41 ReactDOM.render(<Study />,document.getElementById("app"))
42 </script>
43 </body>
44
45 </html>