Vue 教程
/ v-on
v-on
onClick 事件
v-on 指令允许我们根据指定的事件执行操作。
使用 v-on:click
在单击元素时执行操作。
示例
v-on
指令用于 <button> 标签来监听"click"事件。 当"click"事件发生时,"lightOn"数据属性在"true"和"false"之间切换,使灯泡后面的黄色 <div> 可见/隐藏。
oninput 事件
使用 v-on:input
在元素获得输入(例如在文本字段中击键)时执行操作。
示例
计算输入文本字段的击键次数:
<div id="app"> <input v-on:input="inpCount++"> <p>{{ 'Input events occured: ' + inpCount }}</p> </div> <script src="https://unpkg.com/vue@3/dist/vue.global.js"></script> <script> const app = Vue.createApp({ data() { return { inpCount: 0 } } }) app.mount('#app') </script> »mousemove 事件
使用v-on:mousemove
在鼠标指针移动到元素上时执行操作。
示例
当鼠标指针移到 <div> 元素上时更改其背景颜色:
<div id="app"> <p>Move the mouse pointer over the box below</p> <div v-on:mousemove="colorVal=Math.floor(Math.random()*360)" v-bind:style="{backgroundColor:'hsl('+colorVal+',80%,80%)'}"> </div> </div> <script src="https://unpkg.com/vue@3/dist/vue.global.js"></script> <script> const app = Vue.createApp({ data() { return { colorVal: 50 } } }) app.mount('#app') </script> »在 v-for 循环中使用 v-on
您还可以在 v-for
循环中使用 v-on
指令。
数组的项目可用于 v-on
值内的每次迭代。
示例
显示基于食物数组的列表,并为每个项目添加一个单击事件,该事件将使用数组项目中的值来更改图像的源。
<div id="app"> <img v-bind:src="imgUrl"> <ol> <li v-for="food in manyFoods" v-on:click="imgUrl=food.url"> {{ food.name }} </li> </ol> </div> <script src="https://unpkg.com/vue@3/dist/vue.global.js"></script> <script> const app = Vue.createApp({ data() { return { imgUrl: 'img_salad.svg', manyFoods: [ {name: 'Burrito', url: 'img_burrito.svg'}, {name: 'Salad', url: 'img_salad.svg'}, {name: 'Cake', url: 'img_cake.svg'}, {name: 'Soup', url: 'img_soup.svg'} ] } } }) app.mount('#app') </script> »v-on
的简写
"v-on
"的简写形式就是"@
"。
示例
这里我们只写"@
"而不是"v-on
":
我们将在本教程稍后开始使用 @
语法。