欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

uniapp中常用的事件處理方法詳解

 更新時(shí)間:2023年12月28日 10:46:34   作者:許多仙  
在UniApp中事件處理非常重要,通過事件處理可以實(shí)現(xiàn)用戶與應(yīng)用程序之間的交互,這篇文章主要給大家介紹了關(guān)于uniapp中常用的事件處理方法的相關(guān)資料,需要的朋友可以參考下

前言

UniApp 是一個(gè)跨平臺(tái)的開發(fā)框架,支持多種前端框架(Vue、React、Angular 等),并能打包成多種運(yùn)行平臺(tái)(H5、小程序、App 等)。在 UniApp 中,事件處理非常重要,通過事件處理可以實(shí)現(xiàn)用戶與應(yīng)用程序之間的交互。下面是 UniApp 中常用的事件處理方式:

1. 綁定事件

在模板中可以通過 @ 符號(hào)綁定事件,例如:

<button @click="handleClick">點(diǎn)擊我</button>

這里綁定了一個(gè) click 事件,并且綁定的函數(shù)是 handleClick。

2. 事件修飾符

事件修飾符是指在綁定事件時(shí)使用的一些特殊符號(hào),用于修改事件的行為。常見的事件修飾符包括:

  • prevent:阻止默認(rèn)行為
  • stop:阻止事件冒泡
  • capture:使用事件捕獲模式
  • self:只有當(dāng)事件是從事件源本身觸發(fā)時(shí)才觸發(fā)回調(diào)函數(shù)
  • once:只觸發(fā)一次回調(diào)函數(shù)
  • passive:提高頁面滾動(dòng)的流暢度

例如:

<!-- 阻止默認(rèn)行為 -->
<button @click.prevent="handleClick">點(diǎn)擊我</button>

<!-- 阻止事件冒泡 -->
<button @click.stop="handleClick">點(diǎn)擊我</button>

<!-- 使用事件捕獲模式 -->
<button @click.capture="handleClick">點(diǎn)擊我</button>

<!-- 只有當(dāng)事件是從事件源本身觸發(fā)時(shí)才觸發(fā)回調(diào)函數(shù) -->
<button @click.self="handleClick">點(diǎn)擊我</button>

<!-- 只觸發(fā)一次回調(diào)函數(shù) -->
<button @click.once="handleClick">點(diǎn)擊我</button>

<!-- 提高頁面滾動(dòng)的流暢度 -->
<button @click.passive="handleClick">點(diǎn)擊我</button>

.prevent 和 .stop 是兩種不同的事件修飾符,雖然它們有一些相似之處,但是在事件處理中有不同的作用。

1 .prevent 用于阻止事件的默認(rèn)行為,例如阻止 <a> 標(biāo)簽的默認(rèn)跳轉(zhuǎn)、阻止表單的默認(rèn)提交等。
如果一個(gè)事件被 .prevent 修飾符修飾了,則在事件觸發(fā)時(shí),不會(huì)執(zhí)行事件的默認(rèn)行為,而只會(huì)執(zhí)行`綁定的事件處理函數(shù)`。

2 .stop 用于阻止事件的冒泡傳播,事件冒泡是指當(dāng)一個(gè)元素觸發(fā)事件時(shí),該事件會(huì)向父級(jí)元素傳播。
如果一個(gè)事件被 .stop 修飾符修飾了,則在事件觸發(fā)時(shí),不會(huì)向上層元素傳播該事件,而只會(huì)在當(dāng)前元素內(nèi)部進(jìn)行處理。

因此,.prevent 和 .stop 的作用是不同的,但是它們都能夠阻止事件的默認(rèn)行為。
.prevent 用于阻止元素的默認(rèn)行為,.stop 用于阻止事件的冒泡傳播。 

具體示例:

當(dāng)一個(gè)鏈接被點(diǎn)擊時(shí),會(huì)觸發(fā) click 事件。如果鏈接沒有設(shè)置 href 屬性,則默認(rèn)的行為是不進(jìn)行跳轉(zhuǎn),

但如果設(shè)置了 href 屬性,則會(huì)跳轉(zhuǎn)到 href 指定的頁面。
在這種情況下,可以使用 .prevent 和 .stop 修飾符來阻止鏈接的默認(rèn)跳轉(zhuǎn)行為和冒泡傳播。


我們給鏈接設(shè)置了 href 屬性,并綁定了 click 事件和 handleLinkClick 方法。
同時(shí),我們?cè)阪溄由鲜褂昧?.prevent 和 .stop 修飾符來阻止默認(rèn)的跳轉(zhuǎn)行為和冒泡傳播。
<template>
  <div @click="handleDivClick">//上層點(diǎn)擊事件。用了檢測(cè)下面的點(diǎn)擊事件有沒有冒泡上來
    <a  rel="external nofollow"  @click.prevent.stop="handleLinkClick">點(diǎn)擊我</a>
  </div>
</template>

<script>
export default {
  methods: {
    handleLinkClick() {
      console.log('內(nèi)部事件————鏈接被點(diǎn)擊了');
    },
    handleDivClick() {
      console.log('外部事件————div 被點(diǎn)擊了');
    }
  }
};
</script>
在點(diǎn)擊鏈接時(shí),控制臺(tái)會(huì)輸出 【內(nèi)部事件————鏈接被點(diǎn)擊了】
鏈接被點(diǎn)擊了,而不會(huì)進(jìn)行跳轉(zhuǎn)。
同時(shí),由于使用了 .stop 修飾符,事件也不會(huì)向上層元素冒泡傳播,因此點(diǎn)擊鏈接時(shí)不會(huì)觸發(fā)外部事件 handleDivClick 方法。

1、如果我們把 .prevent 修飾符去掉,點(diǎn)擊鏈接時(shí)會(huì)進(jìn)行跳轉(zhuǎn)。說明默認(rèn)行為存在,但是被阻止了。

2、如果把 .stop 修飾符去掉,點(diǎn)擊鏈接時(shí)會(huì)觸發(fā) handleDivClick 方法。說明點(diǎn)擊事件冒泡了。

這說明了 .prevent 和 .stop 修飾符的區(qū)別,.prevent 可以阻止默認(rèn)行為,.stop 可以阻止冒泡傳播。

默認(rèn)行為指的是元素在觸發(fā)某些事件時(shí),瀏覽器會(huì)執(zhí)行的預(yù)設(shè)行為。
例如,當(dāng)用戶點(diǎn)擊一個(gè)鏈接時(shí),瀏覽器默認(rèn)會(huì)跳轉(zhuǎn)到該鏈接所指定的 URL。當(dāng)用戶提交一個(gè)表單時(shí),瀏覽器默認(rèn)會(huì)向服務(wù)器發(fā)送表單數(shù)據(jù)并刷新頁面。
這些行為是瀏覽器內(nèi)置的,可以通過 JavaScript 代碼來阻止或修改。

3. 內(nèi)置事件

在 UniApp 中,還有一些內(nèi)置事件可以使用。這些事件是指在特定情況下自動(dòng)觸發(fā)的事件,例如:

  • onLoad:頁面加載完成時(shí)觸發(fā)
  • onReady:頁面初次渲染完成時(shí)觸發(fā)
  • onShow:頁面展示時(shí)觸發(fā)
  • onHide:頁面隱藏時(shí)觸發(fā)
  • onUnload:頁面卸載時(shí)觸發(fā)

這些事件可以在頁面或組件中使用,例如:

export default {
  onLoad() {
    console.log('頁面加載完成');
  },
  onReady() {
    console.log('頁面初次渲染完成');
  },
  onShow() {
    console.log('頁面展示');
  },
  onHide() {
    console.log('頁面隱藏');
  },
  onUnload() {
    console.log('頁面卸載');
  }
}

4. 自定義事件

在 UniApp 中,還可以通過 uni. e m i t 和 u n i . emit 和 uni. emit和uni.on 方法來實(shí)現(xiàn)自定義事件的處理。例如:

// 發(fā)送自定義事件
uni.$emit('myEvent', {data: '自定義事件參數(shù)'});

// 監(jiān)聽自定義事件
uni.$on('myEvent', (data) => {
  console.log('接收到自定義事件', data);
});
這里通過 uni.$emit 發(fā)送了一個(gè)名為 myEvent 的自定義事件,
并傳遞了一個(gè)參數(shù) {data: '自定義事件參數(shù)'}。在需要監(jiān)聽該事件的地方,
可以使用 uni.$on 方法來監(jiān)聽該事件,并在回調(diào)函數(shù)中處理事件。

5. 事件對(duì)象

在事件處理函數(shù)中,可以通過 $event 參數(shù)來獲取事件對(duì)象,事件對(duì)象包含了事件的一些信息,例如:

  • type:事件類型
  • target:事件源
  • currentTarget:當(dāng)前組件
  • detail:自定義數(shù)據(jù)

例如:

<button @click="handleClick">點(diǎn)擊我</button>

methods: {
  handleClick($event) {
    console.log('事件類型', $event.type);
    console.log('事件源', $event.target);
    console.log('當(dāng)前組件', $event.currentTarget);
    console.log('自定義數(shù)據(jù)', $event.detail);
  }
}

以上就是 UniApp 中常用的事件處理方式,包括綁定事件、事件修飾符、內(nèi)置事件、自定義事件和事件對(duì)象。

掌握這些知識(shí),可以更加靈活地處理事件,實(shí)現(xiàn)豐富的用戶交互效果。 

總結(jié)

到此這篇關(guān)于uniapp中常用的事件處理方法的文章就介紹到這了,更多相關(guān)uniapp事件處理內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論