最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

@click.native和@click的區(qū)別及說明

 更新時間:2024年08月16日 17:03:23   作者:轉(zhuǎn)角處的湯姆  
這篇文章主要介紹了@click.native和@click的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

@click.native和@click的區(qū)別

@click 是 Vue.js 框架提供的模板語法,用于綁定 DOM 元素的 click 事件,等價于 v-on:click。它只能監(jiān)聽 Vue 組件內(nèi)部元素的 click 事件,并且會阻止默認行為和事件冒泡。

@click.native 則是 Vue.js 框架提供的修飾符之一,用于監(jiān)聽 DOM 元素的原生 click 事件,不會對默認行為和事件冒泡進行任何處理。相比于 @click,它可以監(jiān)聽任何 DOM 元素的 click 事件,包括組件內(nèi)嵌套的子組件和子元素。

舉個例子:

如果你想監(jiān)聽一個來自于 slot 內(nèi)的元素的 click 事件,可以使用 @click.native 來綁定該事件。

使用@click點擊事件不生效、使用@click.native才生效是為啥?

在引入 better-scroll 組件中使用 @click 事件會失效,需要在 better-scroll 的配置項中設(shè)置 click: true,才能使 @click 事件生效。這是因為 better-scroll 會阻止默認的瀏覽器事件,并將其轉(zhuǎn)化為自定義的滾動事件,從而導(dǎo)致原生的 click 事件無法響應(yīng)。

@click.native 可以監(jiān)聽 DOM 元素的原生 click 事件,不會經(jīng)過 better-scroll 的處理,因此能夠正常響應(yīng)用戶的點擊操作。

綜上所述,如果在使用 better-scroll 或其他可能影響原生 click 事件響應(yīng)的組件時,建議使用 @click.native 來綁定 click 事件,從而避免事件失效的問題。

@click與@click.native,及其vue事件機制的分析

vue維護了自己的事件機制。

所以就有了原生DOM事件和自定義事件的區(qū)別,比如下面這段官網(wǎng)原話。

用在普通元素上時,只能監(jiān)聽原生 DOM 事件。用在自定義元素組件上時,也可以監(jiān)聽子組件觸發(fā)的自定義事件。

本文也將圍繞這一句話展開。

想必大家都會在自定義組件中自定義事件。

<my-component v-on:my-event="doSomething"></my-component>

那么如何給自定義組價添加原生事件呢,其實想一想理論上是不可行的,因為自定義組件最終不會渲染到頁面上,怎么加?

所以Vue給自定義組件綁定原生事件的做法是:把原生事件綁定到組件的根節(jié)點,根節(jié)點就只有一個嘛…

但是你要告訴vue,當前要給原生節(jié)點綁定DOM事件,而不是自定義事件。

如下:

<!-- 以下無論你怎么點擊hello都不會觸發(fā)父組件的事件的 -->
<!-- 除非加上@click="$emit('click')",也就是觸發(fā)自定義事件 -->
<template>
  <div class="hello">
    hello
  </div>
</template>

<template>
  <div id="app">
    <HelloWorld msg="Welcome to Your Vue.js App" @click="clickEvent"/>
  </div>
</template>
<script>
  methods: {
    clickEvent(){
      console.log('事件觸發(fā)')
    }
  }
</script>

或者直接簡單的使用.native。

<HelloWorld msg="Welcome to Your Vue.js App" @click.native="clickEvent"/>

好了,你已經(jīng)了解了.native的用途。接下來,再說一說原生節(jié)點綁定自定義DOM事件。

直接看代碼如下:

<template>
  <div id="app" @customizedEvent="myEvent">
    <HelloWorld msg="Welcome to Your Vue.js App"/>
  </div>
</template>

<script>
import HelloWorld from './components/HelloWorld.vue'
export default {
  name: 'App',
  components: {
    HelloWorld
  },
  mounted() {
    const app = document.getElementById('app');

    const event = document.createEvent('HTMLEvents');
    event.initEvent('customizedEvent', false, true);
    app.dispatchEvent(event);
  },
  methods: {
    myEvent() {
      console.log('customizedEvent')
    }
  }
}
</script>

我們通過原生的事件派發(fā)機制可以觸發(fā)綁定到原生元素的事件。

說明vue幫你做的事情其實是

app.addEventListener('customizedEvent', myEvent, false);

也就是說并非走的組件中的自定義事件,而是原生的DOM事件。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • vuex學(xué)習(xí)之Actions的用法詳解

    vuex學(xué)習(xí)之Actions的用法詳解

    本篇文章主要介紹了vuex學(xué)習(xí)之Actions的用法詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • vue3+element?plus實現(xiàn)側(cè)邊欄過程

    vue3+element?plus實現(xiàn)側(cè)邊欄過程

    這篇文章主要介紹了vue3+element?plus實現(xiàn)側(cè)邊欄過程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • vue.js刪除動態(tài)綁定的radio的指定項

    vue.js刪除動態(tài)綁定的radio的指定項

    這篇文章主要介紹了vue.js刪除動態(tài)綁定的radio的指定項,需要的朋友可以參考下
    2017-06-06
  • Vue中的@blur/@focus事件解讀

    Vue中的@blur/@focus事件解讀

    這篇文章主要介紹了Vue中的@blur/@focus事件解讀,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Vue+Nodejs使用WebSocket創(chuàng)建一個簡易聊天室教程

    Vue+Nodejs使用WebSocket創(chuàng)建一個簡易聊天室教程

    這篇文章主要介紹了Vue+Nodejs使用WebSocket創(chuàng)建一個簡易聊天室教程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-06-06
  • vue同一個瀏覽器登錄不同賬號數(shù)據(jù)覆蓋問題解決方案

    vue同一個瀏覽器登錄不同賬號數(shù)據(jù)覆蓋問題解決方案

    同一個瀏覽器登錄不同賬號session一致,這就導(dǎo)致后面登錄的用戶數(shù)據(jù)會把前面登錄的用戶數(shù)據(jù)覆蓋掉,這個問題很常見,當前我這邊解決的就是同一個瀏覽器不同窗口只能登錄一個用戶,對vue同一個瀏覽器登錄不同賬號數(shù)據(jù)覆蓋問題解決方法感興趣的朋友一起看看吧
    2024-01-01
  • 在Vue渲染模板時保留HTML注釋的方法

    在Vue渲染模板時保留HTML注釋的方法

    在使用 Vue.js 進行開發(fā)時,模板中的 HTML 注釋通常會被 Vue 的編譯器自動移除,然而,在某些情況下,我們可能希望保留這些注釋,例如為了調(diào)試、文檔生成或其他特殊需求,本文將詳細介紹如何在 Vue 渲染模板時保留 HTML 注釋,并提供相關(guān)的代碼示例,需要的朋友可以參考下
    2025-03-03
  • Vue深入理解插槽slot的使用

    Vue深入理解插槽slot的使用

    最近被問起是否了解vue的插槽(slot),咋一想發(fā)現(xiàn),似乎很少用到這玩意。所以整理了下slot的一些用法
    2022-08-08
  • 解決vue2中使用axios http請求出現(xiàn)的問題

    解決vue2中使用axios http請求出現(xiàn)的問題

    下面小編就為大家分享一篇解決vue2中使用axios http請求出現(xiàn)的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • Vue自定義組件實現(xiàn)v-model雙向數(shù)據(jù)綁定的方法

    Vue自定義組件實現(xiàn)v-model雙向數(shù)據(jù)綁定的方法

    這篇文章主要介紹了Vue自定義組件實現(xiàn)v-model雙向數(shù)據(jù)綁定的方法,文中通過代碼示例講解的非常詳細,對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-11-11

最新評論

林州市| 通许县| 思茅市| 布尔津县| 比如县| 安宁市| 琼中| 富裕县| 庆云县| 思茅市| 赫章县| 莱芜市| 新野县| 衡山县| 贵州省| 松滋市| 鹤岗市| 曲麻莱县| 海淀区| 德格县| 淮南市| 东城区| 襄樊市| 巨鹿县| 盐边县| 临西县| 赤壁市| 莆田市| 曲松县| 怀远县| 曲靖市| 苏尼特左旗| 缙云县| 始兴县| 肥东县| 新田县| 洛扎县| 河西区| 江门市| 峨眉山市| 福海县|