Open easonhuang123 opened 7 years ago
v-on:something用于绑定事件监听器,监听DOM变化来触发事件(something),可简写为@something。
<div id="app"> <button type="button" @click="click">点击我获取信息</button> <p>{{msg}}</p> </div>
var vm = new Vue({ el: '#app', data: { msg: '等待点击。。。' }, methods: { click: function() { this.msg = '按钮被点击啦'; } } });
我们也可以在调用的方法中访问原生DOM事件
<div id="app"> <input type="text" @change="prompt"/> <p>{{msg}}</p> </div>
var vm = new Vue({ el: '#app', data: { msg: '等待输入。。。' }, methods: { prompt: function(event) { this.msg = event.target.value; } } });
事件修饰符:Vue通过事件修饰符为DOM事件进行很多细节上的处理,能让我们更加专注于代码逻辑中。
原本点击按钮应该会出现两次弹窗,但是.stop阻止了事件往外层传递,结果只出现内层弹窗
<div id="app"> <div @click="outer"> <button @click.stop="inner">button</button> </div> </div>
var vm = new Vue({ el: '#app' methods: { inner: function() { alert('这是内层button'); }, outer: function() { alert('这是外层 div,可是.stop阻止了我'); } } });
<div id="app"> <a href="www.baidu.com" @click.prevent>我是一条假链接</a> </div>
var vm = new Vue({ el: '#app' });
<div id="app"> <div @click.capture="outer"> <button @click .capture="inner">button</button> </div> </div>
var vm = new Vue({ el: '#app' methods: { inner: function() { alert('这是内层button'); }, outer: function() { alert('这是外层 div,我会先触发哦~'); } } });
<div id="app"> <div @click.self="outer"> <button @click .self="inner">button</button> </div> </div>
var vm = new Vue({ el: '#app' methods: { inner: function() { alert('这是内层button,你点谁就触发谁'); }, outer: function() { alert('这是外层 div,你点谁就触发谁'); } } });
<div id="app"> <button @click .once=" once ">button</button> </div>
var vm = new Vue({ el: '#app' methods: { once: function() { alert('点击事件只会执行一次哦'); } } });
.native:用于触发原生事件
.sync:子组件改变父组件状态
修饰符可以串联,但是不同顺序会产生效果顺序会不同
Vue基础之事件处理
v-on:something用于绑定事件监听器,监听DOM变化来触发事件(something),可简写为@something。
我们也可以在调用的方法中访问原生DOM事件
事件修饰符:Vue通过事件修饰符为DOM事件进行很多细节上的处理,能让我们更加专注于代码逻辑中。
原本点击按钮应该会出现两次弹窗,但是.stop阻止了事件往外层传递,结果只出现内层弹窗
.native:用于触发原生事件
.sync:子组件改变父组件状态
修饰符可以串联,但是不同顺序会产生效果顺序会不同