VUE-04 事件

原生:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4   <meta charset="UTF-8">
 5   <title>事件</title>
 6 </head>
 7 <body>
 8 
 9 <div onclick="fn()" id="btn">点我</div>
10 
11 <script>
12   function fn(){
13     alert(1);
14   }
15   console.log(btn.onclick)
16   /*
17   * ƒ onclick(event) {
18     fn()
19     }
20   */
21 </script>
22 </body>
23 </html>

vue:

 1 <!DOCTYPE html>
 2 <html lang="en" xmlns:v-on="http://www.w3.org/1999/xhtml">
 3 <head>
 4   <meta charset="UTF-8">
 5   <title>事件</title>
 6 </head>
 7 <body>
 8 
 9 <div id="app">
10   <!--v-on === @-->
11   <!--如果不传递参数 则不要写括号 会自动传入事件源,写括号了要手动传入$event属性-->
12   <div v-on:click="fn">点我</div>
13   <div v-on:click="ck($event,1)">点我</div>
14 </div>
15 
16 <script src="./node_modules/vue/dist/vue.js"></script>
17 <script>
18 
19   let vm = new Vue({ // 根实例
20     el:'#app',
21     methods:{
22       // methods 中的this指向的都是实例vm 不能用箭头函数fn:()=>{alert(1);},this会改变
23       fn() {alert(1);}, // es6 的写法  fn:function () {alert(1);}
24       ck(event,a) {console.log(event)}
25     },
26     data:{
27       // 也可以 但是 不美观 fn (){alert(1);} data和methods中的数据都会放到vm上,名字不能重复。
28     }
29 
30   });
31 </script>
32 </body>
33 </html>
 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Demo</title>
 6 </head>
 7 <body>
 8 <div id="app">
 9   <!--vue中的键盘修饰符 keyup.13 keyup.enter 按enter键  keyup.a keyup.ctrl.a"-->
10   <input type="text" v-model="val" @keyup.enter="add"/>
11   <ul>
12     <li v-for="v,i in arr">{{v}}<button @click="remove(i)">删除</button> </li>
13   </ul>
14 </div>
15 <script src="./node_modules/vue/dist/vue.js"></script>
16 <script>
17   let vm = new Vue({
18     el:'#app',
19     methods:{
20       add(e){
21         // if(e.keyCode===13){  事件上直接用.enter代替
22           this.arr.unshift(this.val);
23           this.val = '';
24         // }
25       },
26       remove(i){this.arr = this.arr.filter((item,index)=> index!==i);},
27     },
28     data:{
29       val:'',
30       arr:[],
31     }
32   })
33 </script>
34 </body>
35 </html>
原文地址:https://www.cnblogs.com/onroad2019/p/13268217.html