大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 Vue事件處理

Vue事件處理

更新時間:2021-12-03 08:57:08 來源:動力節點 瀏覽1014次

監聽事件

我們可以使用v-on指令來監聽 DOM 事件并在它們被觸發時運行一些 JavaScript

例如:

<div id="example-1">
  <button v-on:click="counter += 1">Add 1</button>
  <p>The button above has been clicked {{ counter }} times.</p>
</div>
var example1 = new Vue({
  el: '#example-1',
  data: {
    counter: 0
  }
})

結果:

方法事件處理程序

但是,許多事件處理程序的邏輯會更復雜,因此將 JavaScript 保留在v-on屬性值中是不可行的。這就是為什么v-on也可以接受您想要調用的方法的名稱。

例如:

<div id="example-2">
  <!-- `greet` is the name of a method defined below -->
  <button v-on:click="greet">Greet</button>
</div>
var example2 = new Vue({
  el: '#example-2',
  data: {
    name: 'Vue.js'
  },
  // define methods under the `methods` object
  methods: {
    greet: function (event) {
      // `this` inside methods points to the Vue instance
      alert('Hello ' + this.name + '!')
      // `event` is the native DOM event
      if (event) {
        alert(event.target.tagName)
      }
    }
  }
})
// you can invoke methods in JavaScript too
example2.greet() // => 'Hello Vue.js!'

結果:

內聯處理程序中的方法

除了直接綁定到方法名稱之外,我們還可以在內聯 JavaScript 語句中使用方法:

<div id="example-3">
  <button v-on:click="say('hi')">Say hi</button>
  <button v-on:click="say('what')">Say what</button>
</div>
new Vue({
  el: '#example-3',
  methods: {
    say: function (message) {
      alert(message)
    }
  }
})

結果:

有時我們還需要在內聯語句處理程序中訪問原始 DOM 事件。您可以使用特殊$event變量將其傳遞給方法:

<button v-on:click="warn('Form cannot be submitted yet.', $event)">
  Submit
</button>
// ...
methods: {
  warn: function (message, event) {
    // now we have access to the native event
    if (event) {
      event.preventDefault()
    }
    alert(message)
  }
}

事件修飾符

調用event.preventDefault()或event.stopPropagation()事件處理程序內部是非常常見的需求。雖然我們可以在方法內部輕松做到這一點,但如果方法可以純粹是關于數據邏輯而不是必須處理 DOM 事件細節,那就更好了。

為了解決這個問題,Vue公司提供事件修飾符的v-on。回想一下,修飾符是由點表示的指令后綴。

.stop

.prevent

.capture

.self

.once

.passive

<!-- the click event's propagation will be stopped -->
<a v-on:click.stop="doThis"></a>
<!-- the submit event will no longer reload the page -->
<form v-on:submit.prevent="onSubmit"></form>
<!-- modifiers can be chained -->
<a v-on:click.stop.prevent="doThat"></a>
<!-- just the modifier -->
<form v-on:submit.prevent></form>
<!-- use capture mode when adding the event listener -->
<!-- i.e. an event targeting an inner element is handled here before being handled by that element -->
<div v-on:click.capture="doThis">...</div>
<!-- only trigger handler if event.target is the element itself -->
<!-- i.e. not from a child element -->
<div v-on:click.self="doThat">...</div>

使用修飾符時順序很重要,因為相關代碼是以相同的順序生成的。因此 usingv-on:click.prevent.self將阻止所有點擊,而v-on:click.self.prevent只會阻止點擊元素本身。

鍵修飾符

在監聽鍵盤事件時,我們經常需要檢查特定的鍵。Vue 允許v-on在監聽按鍵事件時添加按鍵修飾符:

<!-- only call `vm.submit()` when the `key` is `Enter` -->
<input v-on:keyup.enter="submit">

您可以KeyboardEvent.key通過將它們轉換為 kebab-case來直接使用通過修飾符公開的任何有效鍵名。

<input v-on:keyup.page-down="onPageDown">

在上面的例子中,只有在$event.key等于時才會調用處理程序'PageDown'。如果您想了解更多相關知識,不妨來關注一下動力節點的Vue.js視頻教程,課程內容詳細,通俗易懂,適合小白學習,希望對大家能夠有所幫助。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 中文字幕久久久久一区 | 亚洲精品第五页中文字幕 | 色综合久久九月婷婷色综合 | 伊人成年综合网 | 久久久久久久久久鸭 | 天天曰天天干天天操 | 精品四虎免费观看国产高清 | 神马影院我不卡影院 | 亚洲另类视频在线观看 | 99久久国内精品成人免费 | 97中文字幕在线 | 真实国语对白视频播放 | 九九精品国产兔费观看久久 | 久热精品男人的天堂在线视频 | 尹人视频在线观看 | 精品综合久久久久久97超人 | 美女久久久久久久久久久 | 亚洲综合色就色手机在线观看 | 美女国产| 在线观看日韩一区 | 亚洲大片免费 | 性生活一级毛片 | 国产精品96久久久久久久 | 精品日本久久久久久久久久 | 波多野结衣一区二区三区 | 国内精品久久久久久久97牛牛 | 国产一级毛片夜一级毛片 | 男人女人真曰批的视频动态 | 一级肉体毛片视频免费看看 | 久久久久久久国产高清 | 国产一级一级毛片 | 91在线视频免费 | 久久中文字幕综合不卡一二区 | 免费毛片播放 | 日韩国产精品视频 | 99国产精品久久久久久久... | 狠狠色噜狠狠狠狠 | 成人免费淫片免费观看 | 91精品免费高清在线 | 久久久影院亚洲精品 | 99热这里只有精品国产在热久久 |