14.ref.html 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  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. const root = ReactDOM.createRoot(document.getElementById("root"));
  15. /**
  16. * ref绑定:
  17. * 1.在定义部分:声明ref名字,来自于React.createRef()
  18. * 2.在元素上 需要通过 ref={名字} 进行绑定
  19. * 3.获取: 输出 => {current:绑定的ref元素}
  20. */
  21. const dayRef = React.createRef();
  22. const inpRef = React.createRef();
  23. function App() {
  24. function handleClick() {
  25. console.log("点击",dayRef,inpRef)
  26. }
  27. return (
  28. <div>
  29. <h1 onClick={handleClick}>我是一个标题</h1>
  30. <Day ref={dayRef} />
  31. <input type="text" ref={inpRef} />
  32. </div>
  33. )
  34. }
  35. class Day extends React.Component {
  36. constructor() {
  37. super();
  38. this.state = {
  39. week: "周五"
  40. }
  41. }
  42. render() {
  43. return (
  44. <p>今天是{this.state.week}</p>
  45. )
  46. }
  47. }
  48. root.render(<App/>);
  49. </script>
  50. </body>
  51. </html>