partOne.html 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>Document</title>
  7. <script src="./babel.min.js"></script>
  8. <script src="./react.development.js"></script>
  9. <script src="./react-dom.development.js"></script>
  10. </head>
  11. <body>
  12. <div id="root">
  13. </div>
  14. <script type="text/babel">
  15. class Demo extends React.Component {
  16. // 引入createRef 只有一个属性 current 绑定的标签值传给current
  17. newRef = React.createRef();
  18. showData=()=> {
  19. // id获取
  20. // var input1 = document.getElementById("input1");
  21. // alert(input1.value);
  22. // 挂载ref
  23. // 标签写法:ref='xxx'
  24. // console.log(this.refs.input1.value,'1')
  25. // let input1 = this.refs.input1;
  26. // alert(input1.value)
  27. // 回调函数
  28. // 标签写法:ref={{(val)=>{this.xxx=val}}}
  29. // console.log(this.input1.value)
  30. // createRef
  31. // 1.引入 xxx=React.createRef()
  32. // 2.标签挂载 ref={this.xxx}
  33. // 3.调用console.log(this.newRef.current.value)
  34. }
  35. showMsg=()=> {
  36. // var input2 = document.getElementById("input2");
  37. // alert(input2.value);
  38. // let input2 = this.refs.input2;
  39. // alert(input2.value)
  40. // console.log(this.main1.value)
  41. }
  42. render() {
  43. return(
  44. <div>
  45. <h3>这是一个挂载案例</h3>
  46. <input ref={this.newRef} type="text" placeholder='请输入一' />
  47. <br/>
  48. <button onClick={this.showData}>获取输入框中的值</button>
  49. <br/>
  50. <input ref={(content)=>{this.main1=content,console.log(content)}} placeholder='请输入二' onBlur={this.showMsg} type="text" />
  51. </div>
  52. )
  53. }
  54. }
  55. let element = <Demo/>
  56. ReactDOM.createRoot(document.getElementById("root")).render(element);
  57. </script>
  58. </body>
  59. </html>