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,边学边写边用。看看学到的东西能否套到公司的项目上,如果能套上,现学现用,效果应该会不错。