国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

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

2024-05-06 15:37:05
字體:
供稿:網(wǎng)友

事出有因

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

native

修飾符native,有什么用

    native是原生事件(第一反應(yīng),當(dāng)時沒然后了...)

惡補一下

    native 一定是用于自定義組件,也就是自定義的html標(biāo)簽

結(jié)合代碼說得明白

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

注意點

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

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

猜測

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

所以

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

self

作用

引用官方說明

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

結(jié)合代碼說明

<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,當(dāng)添加self時,只有當(dāng)兩者相等時才會觸發(fā)回調(diào)

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 巴林左旗| 吉隆县| 东宁县| 房山区| 峨眉山市| 崇州市| 房产| 怀化市| 分宜县| 关岭| 灌南县| 淄博市| 新田县| 水富县| 辽阳县| 分宜县| 彭阳县| 湄潭县| 嘉定区| 盘山县| 深圳市| 苗栗市| 亚东县| 西安市| 南投县| 邮箱| 花莲县| 丰镇市| 惠安县| 华安县| 牡丹江市| 阳东县| 建德市| 河间市| 隆尧县| 驻马店市| 汶上县| 青川县| 扬中市| 大连市| 安庆市|