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

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

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

前言

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

1. 綁定事件

在模板中可以通過 @ 符號綁定事件,例如:

<button @click="handleClick">點擊我</button>

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

2. 事件修飾符

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

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

例如:

<!-- 阻止默認行為 -->
<button @click.prevent="handleClick">點擊我</button>

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

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

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

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

<!-- 提高頁面滾動的流暢度 -->
<button @click.passive="handleClick">點擊我</button>

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

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

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

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

具體示例:

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

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


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

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

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

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

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

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

3. 內(nèi)置事件

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

  • onLoad:頁面加載完成時觸發(fā)
  • onReady:頁面初次渲染完成時觸發(fā)
  • onShow:頁面展示時觸發(fā)
  • onHide:頁面隱藏時觸發(fā)
  • onUnload:頁面卸載時觸發(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 方法來實現(xiàn)自定義事件的處理。例如:

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

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

5. 事件對象

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

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

例如:

<button @click="handleClick">點擊我</button>

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

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

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

總結(jié)

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

相關(guān)文章

最新評論