6. 事件处理-事件对象.html 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  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>事件处理</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. <!-- 原生事件注册 -->
  15. <!-- <button id="btn">点我试试</button> -->
  16. <script type="text/babel">
  17. // 比如注册点击事件
  18. // 原生DOM实现
  19. // document.getElementById('btn').onclick = function () {
  20. // alert('你敢点我???');
  21. // };
  22. // React中的实现
  23. function handleClick(e) {
  24. console.log(e);
  25. alert('你敢点我???');
  26. }
  27. function handleChage(e) {
  28. // 每次文本改后将其打印出来
  29. console.log('changed:', e.target.value);
  30. }
  31. function handleSubmit(e) {
  32. e.preventDefault(); // 取消默认行为
  33. alert('submited.');
  34. }
  35. const element = (
  36. <div>
  37. {/**1 点击事件 **/}
  38. <button onClick={handleClick}>点我试试</button>
  39. {/**2 change事件 **/}
  40. {/* input元素的change事件 和原生的input事件 是一样的 */}
  41. <input type="text" onChange={handleChage} />
  42. {/**3 submit事件 **/}
  43. <form onSubmit={handleSubmit}>
  44. <p>这旮瘩是表单</p>
  45. <button>提交</button>
  46. </form>
  47. </div>
  48. );
  49. ReactDOM.createRoot(document.querySelector('#root')).render(element);
  50. </script>
  51. </body>
  52. </html>