Vue事件处理
Contents
一 事件处理概念
简单理解就是,触发了某个事件:点击button按钮、键盘键入、点击鼠标等,从而有对应的时间触发。
二 官网样例程序
https://vuejs.org/v2/guide/events.html
1 点击按钮的监听事件
这里,用v-on绑定到click事件。
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>4-事件处理</title> <!-- 注意,这里,把官方的Vue.js文件下载到本地了,和当前HTML文件在同一个路径下 进而,通过这种方式引入Vue.js--> <script src="vue.js"></script> </head> <body> <div id="shijianchuli"> <button type="button" v-on:click=" counter += 1">Add 1</button> <p>The button above has been clicked {{counter}} times.</p> </div> <script type="text/javascript"> let app=new Vue({ el:"#shijianchuli", data:{ counter:0 } }) </script> </body> </html>
2 事件处理方法
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>4事件处理2</title> <script src="./vue.js"></script> </head> <body> <div id="shijianchuli2"> <!-- 这里的greet是下面定义放方法名 --> <button type="button" v-on:click="greet">Greet</button> </div> <script> let app=new Vue({ el:"#shijianchuli2", data:{ name:"Vue.jsssss." }, // 在 `methods` 对象中定义方法 methods:{ greet:function(event){ // 可以单独alert, alert("Haaaaaaa."); // 这里的this表示当前的Vue实例, // `this` 在方法里指向当前 Vue 实例 alert("Heelo Vue "+this.name); // `event` 是原生 DOM 事件 if(event){ alert(event.target.tagName); } } } }) </script> </body> </html>
3 内联处理器方法
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>4内联处理器方法</title> <script src="vue.js" type="text/javascript" charset="utf-8"></script> </head> <body> <div id="neilian"> <button type="button" v-on:click="say('hi')">say hi</button><br> <button type="button" v-on:click="say('hello')">say hello</button> </div> <script type="text/javascript"> let app = new Vue({ el:"#neilian", methods:{ say:function xxx(what){ alert(what); } } }) </script> </body> </html>
注意:这里的内联方法,有好几种写法都适用。
写法1:
methods:{
say(what){
alert(what);
}
}写法2:
methods:{
say:function (what){
alert(what);
}
}写法3:
methods:{
say:function xxx(what){
alert(what);
}
}
4 添加1个内联处理器方法
该方法,阻止某些事件发生,比如阻止form提交。
注意:第二个button不生效,其原因是它的id=”example-4″并没有和ViewModel绑定在一起。
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>4内联处理器方法</title> <script src="vue.js" type="text/javascript" charset="utf-8"></script> </head> <body> <div id="neilian"> <button type="button" v-on:click="say('hi')">say hi</button><br> <button type="button" v-on:click="say('hello')">say hello</button> <button type="button" v-on:click="warn('Forn cant be submitted yet.',$event)">warn</button> </div> <div id="example-4"> <button type="button" v-on:click="warn('Forn cant be submitted yet.',$event)">warn</button> </div> <script type="text/javascript"> let app = new Vue({ el:"#neilian", methods:{ say(what){ alert(what); }, warn:function(message,event){ if(event){ event.preventDefault() } alert(message); } } }) </script> </body> </html>
三 小结
暂无。
先跟着官方文档,一点儿一点儿写例子程序。先把官网的例子都跟一遍再说。可能这本身就是一个比较不错的学习Vue的方法。再加上手头上有公司的一个项目,正好用到前后端分离,前端用Vue,边学边写边用。看看学到的东西能否套到公司的项目上,如果能套上,现学现用,效果应该会不错。