6.事件处理-获取事件对象.html 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  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="../../vue.js"></script>
  9. </head>
  10. <body>
  11. <div id="app">
  12. <div :style="{border: '1px solid red', margin: '10px', padding: '20px'}">
  13. <p>{{ text1 }}</p>
  14. <!-- 当输入框的值有用户输入发生改变后 会触发 input 事件 -->
  15. <!-- 在 视图容器中 可以通过 Vue实例的 $event 属性 来获取事件对象-->
  16. <input type="text" @input="text1=$event.target.value" />
  17. </div>
  18. <div
  19. :style="{border: '1px solid green', margin: '10px', padding: '20px'}"
  20. >
  21. <p>{{ text2 }}</p>
  22. <!-- 此时 当触发input事件后,会自动调用实例方法handleInput,同时传入一个参数 即事件对象 -->
  23. <input type="text" @input="handleInput" />
  24. </div>
  25. <div :style="{border: '1px solid blue', margin: '10px', padding: '20px'}">
  26. <p>{{ text3 }}</p>
  27. <!-- 这种事件处理程序,由于事件处理方法 自己调用的 因此你传入什么,该方法就能接收什么 -->
  28. <!-- 因此 该方法需要什么,你就必须自己手动传入 -->
  29. <input type="text" @input="onInput($event)" />
  30. </div>
  31. </div>
  32. <script>
  33. new Vue({
  34. data: {
  35. text1: '',
  36. text2: '',
  37. text3: '',
  38. },
  39. methods: {
  40. // 因此这里 可以定义一个形参接收 事件对象即可
  41. handleInput(ev) {
  42. this.text2 = ev.target.value;
  43. },
  44. onInput(e) {
  45. this.text3 = e.target.value;
  46. },
  47. },
  48. }).$mount('#app');
  49. </script>
  50. </body>
  51. </html>