14.ref.html 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  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"></div>
  13. <script type="text/babel">
  14. /**
  15. * ref绑定
  16. * 1.在定义部分 声明ref的名字 来自于React.createRef()
  17. * 2.在jsx部分 使用 ref={xxxx}
  18. * 3.输出 {current:绑定的ref元素}
  19. */
  20. let root = ReactDOM.createRoot(document.getElementById("root"));
  21. let countRef = React.createRef();
  22. let inpRef = React.createRef();
  23. function App() {
  24. function handleClick() {
  25. console.log(countRef)
  26. console.log(inpRef)
  27. }
  28. return (
  29. <div>
  30. <Count ref={countRef} />
  31. <button onClick={handleClick}>哈哈哈</button>
  32. <input type="text" ref={inpRef} />
  33. </div>
  34. )
  35. }
  36. class Count extends React.Component {
  37. constructor(props) {
  38. super(props);
  39. this.state = {
  40. aa: 20
  41. }
  42. }
  43. render() {
  44. return (
  45. <div>
  46. {this.state.aa}
  47. </div>
  48. )
  49. }
  50. }
  51. root.render(<App/>);
  52. </script>
  53. </body>
  54. </html>