亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Vue事件修飾符native、self示例詳解

 更新時間:2019年07月09日 17:08:31   作者:Infinity  
這篇文章主要給大家介紹了關于Vue事件修飾符native、self的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Vue具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧

事出有因

之前面試被問到的native和self相關問題,self我覺得自己應該能回答出來,可能被之前一小時的問題整懵逼了。尷尬~~
自己研究了一下,不足之處望補充,相互進步

native

修飾符native,有什么用

  1. native是原生事件(第一反應,當時沒然后了...)

惡補一下

  1. native 一定是用于自定義組件,也就是自定義的html標簽

結合代碼說得明白

<body>
 <div id="app">
  <div class="box" >
   <Son @click='handler1'></Son>
  </div>
 </div>

</body>
<script>
 const Son = Vue.component('Son', {
  template: '<button @mouseover=handler2 class="box1">son</button>',
  methods: {
   handler2 (e) {
    
   }
  }
 })
 new Vue({
  el: "#app",
  components: {
   Son
  },
  data() {
   return {
    a: 123
   }
  },
  methods: {
   handler1 (e) {
    console.log('父級')
   }
  }
 })

</script>

注意點

  1. 當<Son @click='handler1'></Son>,子組件中的this.$listeners返回的是{click: ƒ},box1的dom上沒有綁定click事件(可以打開F12查看),所以這個事件不是原生的click
  2. 當<Son @click.native='handler1'></Son>,子組件中的this.$listeners返回的是{},box1的dom上綁定了click事件(可以打開F12查看),所以這個事件是原生的click
  3. 當<Son @click.self='handler1'></Son>,子組件中的this.$listeners返回的是{click: ƒ},box1的dom上沒有綁定click事件(可以打開F12查看),所以這個事件不是原生的click
  4. 子組件的this.$emit('eventTpye')是從this.$listeners返回值中查找的

為什么有時候組件點擊事件不會生效

猜測

  • 子組件html標簽沒有定義click原生事件
  • 子組件沒有執(zhí)行this.$emit('click')

所以

直接.native將事件綁定到子組件html標簽上,類似dom.addEventListener('click', handler)

self

作用

引用官方說明

<!-- 只當在 event.target 是當前元素自身時觸發(fā)處理函數 -->
<!-- 即事件不是從內部元素觸發(fā)的 -->
<div v-on:click.self="doThat">...</div>

結合代碼說明

<body>
 <div id="app">
  <div class="box" @click.self='handler1'>
   <Son ></Son>
  </div>
 </div>

</body>
<script>
 const Son = Vue.component('Son', {
  template: '<button @click=handler2 class="box1">son</button>',
  methods: {
   handler2 (e) {
    console.log(e.target, e.currentTarget)
   }
  }
 })
 new Vue({
  el: "#app",
  components: {
   Son
  },
  data() {
   return {
    a: 123
   }
  },
  methods: {
   handler1 (e) {
    console.log(e.target, e.currentTarget)
   }
  }
 })
</script>

就是利用e.target和e.currentTarget,當添加self時,只有當兩者相等時才會觸發(fā)回調

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。

相關文章

  • 解決Vue數據更新了但頁面沒有更新的問題

    解決Vue數據更新了但頁面沒有更新的問題

    在vue項目中,有些我們會遇到修改完數據,但是視圖卻沒有更新的情況,具體的場景不一樣,解決問題的方法也不一樣,在網上看了很多文章,在此總結匯總一下,需要的朋友可以參考下
    2023-08-08
  • vue.js項目打包上線的圖文教程

    vue.js項目打包上線的圖文教程

    下面小編就為大家分享一篇vue.js項目打包上線的圖文教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-11-11
  • 基于vite2+Vue3編寫一個在線幫助文檔工具

    基于vite2+Vue3編寫一個在線幫助文檔工具

    提起幫助文檔,想必大家都會想到?VuePress等。但是VuePress是“靜態(tài)網站生成器”,需要我們自行編寫文檔,然后交給VuePress變成網站。因此,本文將用vite2+Vue3編寫一個在線幫助文檔工具,需要的可以參考一下
    2022-03-03
  • Vite+Electron快速構建VUE3桌面應用的實現

    Vite+Electron快速構建VUE3桌面應用的實現

    本文主要介紹了Vite+Electron快速構建VUE3桌面應用的實現,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • Vue異步更新DOM及$nextTick執(zhí)行機制解讀

    Vue異步更新DOM及$nextTick執(zhí)行機制解讀

    這篇文章主要介紹了Vue異步更新DOM及$nextTick執(zhí)行機制解讀,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • 打通前后端構建一個Vue+Express的開發(fā)環(huán)境

    打通前后端構建一個Vue+Express的開發(fā)環(huán)境

    這篇文章主要介紹了打通前后端構建一個Vue+Express的開發(fā)環(huán)境,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • vue-cli3 從搭建到優(yōu)化的詳細步驟

    vue-cli3 從搭建到優(yōu)化的詳細步驟

    這篇文章主要介紹了vue-cli3 從搭建到優(yōu)化的詳細步驟,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • vue-router之實現導航切換過渡動畫效果

    vue-router之實現導航切換過渡動畫效果

    今天小編就為大家分享一篇vue-router之實現導航切換過渡動畫效果,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • 淺談在不使用ssr的情況下解決Vue單頁面SEO問題(2)

    淺談在不使用ssr的情況下解決Vue單頁面SEO問題(2)

    這篇文章主要介紹了淺談在不使用ssr的情況下解決Vue單頁面SEO問題(2),小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-11-11
  • 使用Vite構建Vue3項目的流程步驟

    使用Vite構建Vue3項目的流程步驟

    在現代前端開發(fā)的世界中,Vue 3 已然成為了一個備受喜愛的框架,而 Vite 作為一個新興的構建工具,以其極高的效率和簡捷的配置方式席卷了開發(fā)者圈,本文我們將一步一步展示如何使用 Vite 構建一個 Vue 3 項目,從創(chuàng)建項目到最后的構建階段,需要的朋友可以參考下
    2024-07-07

最新評論