v-on

收藏809

阅读24189

更新时间2025-08-22

onClick 事件

v-on 指令允许我们根据指定的事件执行操作。

使用 v-on:click 在单击元素时执行操作。

示例

v-on 指令用于 <button> 标签来监听"click"事件。 当"click"事件发生时,"lightOn"数据属性在"true"和"false"之间切换,使灯泡后面的黄色 <div> 可见/隐藏。

<div id="app">   <div id="lightDiv">     <div v-show="lightOn"></div>     <img src="img_lightBulb.svg">   </div>   <button v-on:click="lightOn = !lightOn">Switch light</button> </div> <script src="https://unpkg.com/vue@3/dist/vue.global.js"></script> <script>   const app = Vue.createApp({     data() {       return {         lightOn: false       }     }   })   app.mount('#app') </script> »

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":

<button @:click="lightOn = !lightOn">Switch light</button> »

我们将在本教程稍后开始使用 @ 语法。


Vue 练习

通过练习测试自己

练习题:

完成代码,以便在单击按钮时切换图像。

<template>
  <button ="showImg = !showImg">
    Toggle image
  </button>
  <img src="flower.jpg" alt="flower" v-show="showImg">
</template>

<script>
  export default {
    data() {
      return {
        : true
      }
    }
  }
</script>

相关

视频

RELATED VIDEOS

更多

免费

Web前端开发极速入门
初级 Web前端开发极速入门

220622次学习

收藏

免费

前端入门_HTML5
初级 前端入门_HTML5

619062次学习

收藏

免费

30分钟学会网站布局
初级 30分钟学会网站布局

239149次学习

收藏

免费

CSS视频教程-玉女心经版
初级 CSS视频教程-玉女心经版

394761次学习

收藏

免费

独孤九贱(1)_HTML5视频教程

免费

独孤九贱(6)_jQuery视频教程

免费

独孤九贱(7)_Bootstrap视频教程

免费

独孤九贱(2)_CSS视频教程
初级 独孤九贱(2)_CSS视频教程

230705次学习

收藏

科技资讯

更多

精选课程

更多
前端入门_HTML5
前端入门_HTML5

共29课时

62万人学习

CSS视频教程-玉女心经版
CSS视频教程-玉女心经版

共25课时

39.5万人学习

JavaScript极速入门_玉女心经系列
JavaScript极速入门_玉女心经系列

共43课时

71.2万人学习

独孤九贱(1)_HTML5视频教程
独孤九贱(1)_HTML5视频教程

共25课时

61.9万人学习

独孤九贱(2)_CSS视频教程
独孤九贱(2)_CSS视频教程

共22课时

23.1万人学习

独孤九贱(3)_JavaScript视频教程
独孤九贱(3)_JavaScript视频教程

共28课时

34.1万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时

125.7万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号