<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Vue事件修飾符的使用

          共 3135字,需瀏覽 7分鐘

           ·

          2021-08-10 14:43

          事件處理

          如果需要在內(nèi)聯(lián)語句處理器中訪問原生DOM事件。可以使用特殊變量$event,把它傳入到methods中的方法中。
          在vue中,事件修飾符處理了許多DOM事件的細節(jié),讓我們不再需要花大量的時間去處理這些煩惱的事情,而能有更多的精力專注于程序的邏輯處理。在vue中事件修飾符主要有:
          • .stop:等同于JavaScript中的event.stopPropagation(),防止事件冒泡
          • .prevent:等同于JavaScript中的event.preventDefault(),防止執(zhí)行預(yù)設(shè)的行為(如果事件可取消,則取消該事件,而不停止事件的進一步傳播)
          • .capture:與事件冒泡的方向相反,事件捕獲由外到內(nèi)
          • .self:只會觸發(fā)自己范圍內(nèi)的事件,不包含子元素
          • .once:只會觸發(fā)一次

          .stop 防止事件冒泡

          冒泡事件:嵌套兩三層父子關(guān)系,然后所有都有點擊事件,點擊子節(jié)點,就會觸發(fā)從內(nèi)至外  子節(jié)點-》父節(jié)點的點擊事件
          <!-- 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相當于在每個方法中調(diào)用了等同于event.stopPropagation(),點擊子節(jié)點不會捕獲到父節(jié)點的事件

          <!-- 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="#">標簽,當用戶點擊時,通常在瀏覽器的網(wǎng)址列出#:

          .capture 捕獲事件

          捕獲事件:嵌套兩三層父子關(guān)系,然后所有都有點擊事件,點擊子節(jié)點,就會觸發(fā)從外至內(nèi)  父節(jié)點-》子節(jié)點的點擊事件

          <!-- 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只會觸發(fā)自己范圍內(nèi)的事件,不會包含子元素。

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

          .once 只執(zhí)行一次點擊

          如果我們在@click事件上添加.once修飾符,只要點擊按鈕只會執(zhí)行一次。

          鍵盤修飾符

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

          • .enter:回車鍵

          • .tab:制表鍵

          • .delete:含delete和backspace鍵

          • .esc:返回鍵

          • .space: 空格鍵

          • .up:向上鍵

          • .down:向下鍵

          • .left:向左鍵

          • .right:向右鍵

          鼠標修飾符

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

          • .left:鼠標左鍵

          • .middle:鼠標中間滾輪

          • .right:鼠標右鍵

          修飾鍵

          可以用如下修飾符開啟鼠標或鍵盤事件監(jiān)聽,使在按鍵按下時發(fā)生響應(yīng):

          • .ctrl

          • .alt

          • .shift

          • .meta

          自定義按鍵修飾符別名

          在Vue中可以通過config.keyCodes自定義按鍵修飾符別名。例如,由于預(yù)先定義了keycode 116(即F5)的別名為f5,因此在文字輸入框中按下F5,會觸發(fā)prompt方法,出現(xiàn)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!'); } }});

          總結(jié)

          在Vue中,使用v-on來給元素綁定事件,而為了更好的處理邏輯方面的事物,Vue提供了一個methods。在methods中定義一些方法,這些方法可以幫助我們處理一些邏輯方面的事情。

          而在這篇文章中,我們主要介紹了一些事件的修飾符,比如常見的阻止事件冒泡,鍵盤修飾符等。除此之外,還提供了config.keyCodes提供自定義按鍵修飾符別名。

          感謝你的閱讀。

          學習更多技能

          請點擊下方公眾號


          瀏覽 25
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  秋霞午夜| 999精品无码 | 欧美美女破处系列视频 | 波多野结衣中文字幕日韩久久 | 亚洲精品7777777 |