vue有实例属性,实例方法,实例事件,前两个跟选项类似,不是很常用,这次只讲实例事件。
1、$on(在构造器外部添加事件)
$on接收两个参数,第一个参数是调用时的事件名称,第二个参数是一个匿名方法
app.$on('reduce',function(){ console.log('执行了reduce()'); this.count--;});
2、$once(执行一次的事件)
app.$once('reduceOnce',function(){ console.log('只执行一次的方法'); this.count--;});
3、$off(关闭事件)
function off(){ console.log('关闭事件'); app.$off('reduce');}
4、$emit(事件调用)
function reduce() { // 事件调用 console.log('emit事件调用'); app.$emit('reduce');}
完整示例代码
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Vue入门之Helloworld</title> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script></head><body> <div id="app"> <div>数字:{{count}}</div> <button onclick="reduce()">on调用</button> <button onclick="reduceOnce()">once调用</button> <button onclick="off()">off调用</button> </div><script type="text/javascript">var app = new Vue({ el:'#app', data:{ count: 1 }})// $on 在构造器外部添加事件app.$on('reduce',function(){ console.log('执行了reduce()'); this.count--;});// 调用function reduce() { // 事件调用 console.log('emit事件调用'); app.$emit('reduce');}// $once执行一次的事件app.$once('reduceOnce',function(){ console.log('只执行一次的方法'); this.count--;});// 调用function reduceOnce() { app.$emit('reduceOnce');}// 关闭事件function off(){ console.log('关闭事件'); app.$off('reduce');}</script></body></html>