選單
×
   ❮   
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

Vue 教程

Vue 首頁 Vue Intro Vue Directives Vue v-bind Vue v-if Vue v-show Vue v-for Vue Events Vue v-on Vue Methods Vue Event Modifiers Vue Forms Vue v-model Vue CSS Binding Vue Computed Properties Vue Watchers Vue Templates

Scaling Up

Vue 為什麼、如何以及設定 Vue 第一個 SFC 頁面 Vue 元件 Vue Props Vue v-for 元件 Vue $emit() Vue 透傳屬性 Vue 作用域樣式 Vue 本地元件 Vue 插槽 Vue v-slot Vue 作用域插槽 Vue 動態元件 Vue Teleport Vue HTTP 請求 Vue 模板引用 Vue 生命週期鉤子 Vue Provide/Inject Vue 路由 Vue 表單輸入 Vue 動畫 Vue v-for 動畫 Vue 構建 Vue Composition API

Vue Reference

Vue Built-in Attributes Vue Built-in Components Vue Built-in Elements Vue Component Instance Vue Directives Vue Instance Options Vue Lifecycle Hooks

Vue 示例

Vue Examples Vue Exercises Vue Quiz Vue Server Vue Certificate

Vue v-on 指令

與原生 JavaScript 中的事件處理方式類似,Vue 中的 v-on 指令告訴瀏覽器

  1. 要監聽哪個事件(“click”、“keydown”、“mouseover”等)
  2. 當該事件發生時要做什麼

使用 v-on 的示例

讓我們透過一些示例來了解 v-on 如何與不同的事件以及在這些事件發生時要執行的不同程式碼一起使用。

注意: 要在事件發生時執行更高階的程式碼,我們需要引入 Vue 方法。在本教程的下一頁瞭解 Vue 方法。


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">開關燈</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>{{ '發生的輸入事件次數:' + 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>將滑鼠指標移到下面的框上</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 值中對每次迭代都可用。

示例

基於 food 陣列顯示列表,併為每個項新增一個點選事件,該事件將使用陣列項中的值來更改影像的源。

<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">開關燈</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>

開始練習



×

聯絡銷售

如果您想將 W3Schools 服務用於教育機構、團隊或企業,請傳送電子郵件給我們
sales@w3schools.com

報告錯誤

如果您想報告錯誤,或想提出建議,請傳送電子郵件給我們
help@w3schools.com

W3Schools 經過最佳化,旨在方便學習和培訓。示例可能經過簡化,以提高閱讀和學習體驗。教程、參考資料和示例會不斷審查,以避免錯誤,但我們無法保證所有內容的完全正確性。使用 W3Schools 即表示您已閱讀並接受我們的使用條款Cookie 和隱私政策

版權所有 1999-2024 Refsnes Data。保留所有權利。W3Schools 由 W3.CSS 提供支援