2.事件对象.html 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  7. <title>Document</title>
  8. <script src="../../babel.min.js"></script>
  9. <script src="../../react.development.js"></script>
  10. <script src="../../react-dom.development.js"></script>
  11. </head>
  12. <body>
  13. <div id="root"></div>
  14. <script type="text/babel">
  15. // 原生DOM的事件绑定:1 通过事件属性:onclick,onkeyup,onchange,onblur,onsubmit,... 2 通过DOM对象的方法 addEventListener()
  16. //一: 在React中,只能通过 第一种方式 来注册事件。但是也有一点区别:原生事件属性 是由 “on + 事件类型” 组成的属性 ,因此在jsx上需要改成等价的驼峰命名即可,绑定的事件监听器必须是函数类型
  17. // 二:如果获取事件对象。当React事件触发时,事件的监听器会被传入一个唯一参数 就是 事件对象,一般参数名为 e,ev, event。
  18. const root = ReactDOM.createRoot(document.querySelector('#root'));
  19. function App() {
  20. function handleChange() {}
  21. return (
  22. <div>
  23. <p>
  24. <button
  25. onClick={(e) => {
  26. // alert('你点我啊!');
  27. console.log(e);
  28. }}
  29. >
  30. 按钮
  31. </button>
  32. </p>
  33. <p>
  34. <input
  35. type="text"
  36. onClick={(e) => {
  37. console.log(`output->e`, e);
  38. console.log(e.target.value);
  39. }}
  40. onKeyUp={function (e) {
  41. console.log(`output->keyup `);
  42. console.log(e);
  43. }}
  44. />
  45. </p>
  46. <p>
  47. <input type="text" onChange={handleChange} />
  48. </p>
  49. </div>
  50. );
  51. }
  52. root.render(<App />);
  53. </script>
  54. </body>
  55. </html>