vue中的修飾符 Vue2.0學習筆記:Vue事件修飾符的使用

Vue2.0學習筆記:Vue事件修飾符的使用

 

事件處理

     若是須要在內聯語句處理器中訪問原生DOM事件。可使用特殊變量$event,把它傳入到methods中的方法中。html

     在Vue中,事件修飾符處理了許多DOM事件的細節,讓咱們再也不須要花大量的時間去處理這些煩惱的事情,而能有更多的精力專一於程序的邏輯處理。在Vue中事件修飾符主要有:vue

  • .stop:等同於JavaScript中的event.stopPropagation(),防止事件冒泡
  • .prevent:等同於JavaScript中的event.preventDefault(),防止執行預設的行爲(若是事件可取消,則取消該事件,而不中止事件的進一步傳播)
  • .capture:與事件冒泡的方向相反,事件捕獲由外到內
  • .self:只會觸發本身範圍內的事件,不包含子元素
  • .once:只會觸發一次

.stop 防止事件冒泡

冒泡事件:嵌套兩三層父子關係,而後全部都有點擊事件,點擊子節點,就會觸發從內至外  子節點-》父節點的點擊事件瀏覽器

複製代碼
<!-- HTML --> 
<div id="app"> 
  <div class="outeer" @click="outer"> 
    <div class="middle" @click="middle"> 
      <button @click="inner">點擊我(^_^)</button>
     </div>
   </div> 
  <p>{{ message }}</p> 
</div>
 let app = new Vue({
   el: '#app', 
   data () {     return { message: '測試冒泡事件' } },   methods: {     inner: function () {        this.message = 'inner: 這是最裏面的Button'     },     middle: function () {       this.message = 'middle: 這是中間的Div'     },     outer: function () {       this.message = 'outer: 這是外面的Div'     }   } })
複製代碼

防止冒泡事件的寫法是:在點擊上加上.stop至關於在每一個方法中調用了等同於event.stopPropagation(),點擊子節點不會捕獲到父節點的事件app

複製代碼
<!-- HTML --> 
<div id="app"> 
  <div class="outeer" @click.stop="outer"> 
    <div class="middle" @click.stop="middle"> 
      <button @click.stop="inner">點擊我(^_^)</button>
     </div>
   </div> 
</div>
複製代碼

.prevent取消默認事件

.prevent等同於JavaScript的event.preventDefault(),用於取消默認事件。好比咱們頁面的<a href="#">標籤,當用戶點擊時,一般在瀏覽器的網址列出#post

.capture 捕獲事件

捕獲事件:嵌套兩三層父子關係,而後全部都有點擊事件,點擊子節點,就會觸發從外至內  父節點-》子節點的點擊事件學習

複製代碼
<!-- HTML --> 
<div id="app"> 
  <div class="outeer" @click.capture="outer"> 
    <div class="middle" @click.capture="middle"> 
      <button @click.capture="inner">點擊我(^_^)</button>
     </div>
   </div> 
</div>
複製代碼

 

.self

修飾符.self只會觸發本身範圍內的事件,不會包含子元素。測試

複製代碼
<!-- HTML --> 
<div id="app"> 
  <div class="outeer" @click.self="outer"> 
    <div class="middle" @click.self="middle"> 
      <button @click.stop="inner">點擊我(^_^)</button>
     </div>
   </div> 
</div>
複製代碼

Vue的Methods和事件處理

.once 只執行一次點擊

若是咱們在@click事件上添加.once修飾符,只要點擊按鈕只會執行一次。this

鍵盤修飾符

在JavaScript事件中除了前面所說的事件,還有鍵盤事件,也常常須要監測常見的鍵值。在Vue中容許v-on在監聽鍵盤事件時添加關鍵修飾符。記住全部的keyCode比較困難,因此Vue爲最經常使用的鍵盤事件提供了別名:url

  • .enter:回車鍵
  • .tab:製表鍵
  • .delete:含deletebackspace
  • .esc:返回鍵
  • .space: 空格鍵
  • .up:向上鍵
  • .down:向下鍵
  • .left:向左鍵
  • .right:向右鍵

鼠標修飾符

鼠標修飾符用來限制處理程序監聽特定的滑鼠按鍵。常見的有:spa

  • .left:鼠標左鍵
  • .middle:鼠標中間滾輪
  • .right:鼠標右鍵

修飾鍵

能夠用以下修飾符開啓鼠標或鍵盤事件監聽,使在按鍵按下時發生響應:

  • .ctrl
  • .alt
  • .shift
  • .meta

自定義按鍵修飾符別名

在Vue中能夠經過config.keyCodes自定義按鍵修飾符別名。例如,因爲預先定義了keycode 116(即F5)的別名爲f5,所以在文字輸入框中按下F5,會觸發prompt方法,出現alert

複製代碼
<!-- HTML -->
<div id="app">
    <input type="text" v-on:keydown.f5="prompt()">
</div>

Vue.config.keyCodes.f5 = 116;

let app = new Vue({
    el: '#app',
    methods: {
        prompt: function() {
            alert('我是 F5!');
        }
    }
});
複製代碼

總結

在Vue中,使用v-on來給元素綁定事件,而爲了更好的處理邏輯方面的事物,Vue提供了一個methods。在methods中定義一些方法,這些方法能夠幫助咱們處理一些邏輯方面的事情。而在這篇文章中,咱們主要介紹了一些事件的修飾符,好比常見的阻止事件冒泡,鍵盤修飾符等。除此以外,還提供了config.keyCodes提供自定義按鍵修飾符別名。

轉自:https://www.w3cplus.com/vue/vue-methods-and-event-handling.html

相關文章
相關標籤/搜索