Vue 教程

浏览29577
更新时间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>

相关视频

更多

免费

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

64.8万次学习

收藏

免费

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

24.6万次学习

收藏

免费

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

41.1万次学习

收藏

免费

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

76.4万次学习

收藏

精品课程

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

共29课时

64.9万人学习

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

共25课时

41.2万人学习

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

共43课时

76.6万人学习

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

共25课时

64.1万人学习

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

共22课时

24.3万人学习

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

共28课时

36.2万人学习

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

共89课时

133.1万人学习

热门下载

更多
phpStudy 2018最新版
phpStudy 2018最新版

集成PHP7,16种组合,超全大合集

下载

VC9 32位
VC9 32位

VC9 32位 phpstudy集成安装环境运行库

下载

VC11 32位
VC11 32位

VC11 32位 phpstudy集成安装环境运行库​

下载

php程序员工具箱完整版
php程序员工具箱完整版

程序员工具箱 v1.0 php集成环境

下载

VC14 32位
VC14 32位

VC14 32位 phpstudy安装环境运行库

下载

SublimeText3汉化版
SublimeText3汉化版

中文版,非常好用

下载

Notepad++ Windows版
Notepad++ Windows版

Notepad++ 8.9.7 Windows版官方安装包,适合 Windows 用户进行代码编辑、文本处理、语法高亮和插件扩展配置。

下载