许多事件处理的逻辑都很复杂,所以直接把 JavaScript 代码写在 v-on
指令中是不可行的。因此 v-on
可以接收一个定义的方法来调用。
示例:
HTML代码:
<div id="example-2"> <!-- `greet` 是在下面定义的方法名 --> <button v-on:click="greet">Greet</button> </div>
JS代码:
var example2 = new Vue({ el: '#example-2', data: { name: 'Vue.js' }, // 在 `methods` 对象中定义方法 methods: { greet: function (event) { // `this` 在方法里指当前 Vue 实例 alert('Hello ' + this.name + '!') // `event` 是原生 DOM 事件 alert(event.target.tagName) } } }) // 也可以用 JavaScript 直接调用方法 example2.greet() // -> 'Hello Vue.js!'
效果: