vue 实例事件

好处是在构造器外部增加一个构造器内部事件

有三个实例事件方法:

- $on() // 点击一次执行一次

- $once() // 只执行一次

- $off() // 关闭事件方法

外部方法通过 $emit 方法调用

代码示例如下:

<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>example-3</title>
<script src="../assets/js/vue.js"></script>
<script src="../assets/js/jquery-3.1.0.min.js"></script>
</head>

<body>
<h1>example-3</h1>
<hr>
<div id="app">
{{num}}
<p><button @click="add">add</button></p>
</div>
<p><button onclick="reduce()">reduce</button></p>
<p><button onclick="reduceOnce()">reduceOnce</button></p>
<p><button onclick="off()">off</button></p>
<script>
var app = new Vue({
el: '#app',
data() {
return {
num: 1
}
},
methods: {
add() {
this.num++
}
},
})

app.$on('reduce', function () {
console.log('执行了reduce方法');
this.num--
})

app.$once('reduceOnce', function () {
console.log('执行了一次的方法');
this.num--
})

function reduce() {
app.$emit('reduce')
}

function reduceOnce() {
app.$emit('reduceOnce')
}

function off() {
app.$off('reduce')
}
</script>
</body>

</html>

原文地址:https://www.cnblogs.com/sunyang-001/p/11105851.html