Vue事件处理
Posted 1156063074hp
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vue事件处理相关的知识,希望对你有一定的参考价值。
gitHub地址:https://github.com/huangpna/vue_learn里面的lesson04
一 vue事件处理方法实现
举个例子:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>index1</title> </head> <body> <div id="app1"> <button @click="sayHi">点击一下</button> <!--也可以用v-on指令监听DOM--> </div> </body> <script src="../js/vue.min.js"></script> <script> /** *事件处理方法 -- vue简单方法实现 * */ var vm = new Vue({ el:‘#app1‘, // 在 `methods` 对象中定义方法 methods:{ sayHi:function () { alert("我被点击了"); } } }); </script> </html>
二 方法传参
举个例子:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>index2</title> </head> <body> <div id="app2"> <button @click="sayHi(‘我被点击了‘)">说我被点击了</button> <!--事件传参--> <button @click="sayHi(‘您好‘)">说您好</button> </div> </body> <script src="../js/vue.min.js"></script> <script> var vm = new Vue({ el:‘#app2‘, methods:{ sayHi:function (msg) { alert(msg); } } }); </script> </html>
三 vue访问原生DOM事件
举个例子:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>index3</title> </head> <body> <div id="app3"> <button @click="sayHi(‘我被点击了‘,$event)">说我被点击了</button> <!--这里使用@--> <div style="height: 100px;width: 100px;background-color: red;" @mouseover="over(‘鼠标从我上面滑过‘,$event)"> 鼠标从我上面滑过试试 </div> </div> </body> <script src="../js/vue.min.js"></script> <script> var vm = new Vue({ el:‘#app3‘, methods:{ //这里使用methods sayHi:function (msg,$event) { alert(msg+$event); //弹出我被点击了,事件是[object MouseEvent] }, over:function (msg,$event) { alert(msg+$event); //弹出鼠标从我上面滑过,事件是[object MouseEvent] } } }); </script> </html>
四 事件修饰符
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>index4</title> </head> <body> <div id="app4"> <button @click.stop="sayHi(‘你好‘)">说你好</button> <!-- 阻止单击事件冒泡 --> <button @click.prevent="sayHi(‘你好‘)">说你好</button> <!-- 提交事件不再重载页面 阻止默认事件--> <button @click.stop.prevent="sayHi(‘你好‘)">说你好</button> <!-- 阻止单击事件冒泡和提交事件不再重载页面 --> <button @click.capture="sayHi(‘你好‘)">说你好</button> <!-- 添加事件侦听器时使用 capture 模式 --> <button @click.self="sayHi(‘你好‘)">说你好</button> <!-- 只当事件在该元素本身(而不是子元素)触发时触发回调 --> <div @keyup.13="sayHi(‘你好‘)">说你好</div> <!-- 只有在 keyCode 是 13 时调用 vm.submit() --> </div> </body> <script src="../js/vue.min.js"></script> <script type="text/javascript"> var myVue = new Vue({ el: ‘#app4‘, methods: { //这里使用methods sayHi: function (message) { alert(message) } } }) </script> </html>
更多修饰符,之后会专门再写一遍文章做整理。
以上是关于Vue事件处理的主要内容,如果未能解决你的问题,请参考以下文章