vue中的修飾符


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

 

事件處理

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

     在Vue中,事件修飾符處理了許多DOM事件的細節,讓我們不再需要花大量的時間去處理這些煩惱的事情,而能有更多的精力專注於程序的邏輯處理。在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(),點擊子節點不會捕獲到父節點的事件

復制代碼
<!-- 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="#">標簽,當用戶點擊時,通常在瀏覽器的網址列出#

.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修飾符,只要點擊按鈕只會執行一次。

鍵盤修飾符

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

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

鼠標修飾符

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

  • .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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM