VUE3基礎(chǔ)學(xué)習(xí)之click事件詳解
1. 概述
老話(huà)說(shuō)的好:努力幫別人解決難題,你的難題也就不難解決了。
言歸正傳,今天我們來(lái)聊聊 VUE3 的 click 事件的相關(guān)知識(shí)。
2. click 事件
2.1 實(shí)現(xiàn)數(shù)字遞減
<body> <div id="myDiv"></div> </body> <script> const app = Vue.createApp({ // 創(chuàng)建一個(gè)vue應(yīng)用實(shí)例 data() { return { num : 5 } }, methods : { decr() { if(this.num <= 0) { alert("庫(kù)存為0,無(wú)法購(gòu)買(mǎi)") return; } this.num-- ; }, }, template : ` <div> 商品庫(kù)存剩余 {{num}} 件 <button @click="decr">購(gòu)買(mǎi)</button><br> </div> ` }); const vm = app.mount('#myDiv'); // 綁定id為 myDiv 的元素
該例中,每點(diǎn)一次按鈕,商品庫(kù)存都會(huì)減 1
2.2 事件方法中獲取 event 對(duì)象
decr(event) { console.info(event); console.info(event.target); if(this.num <= 0) { alert("庫(kù)存為0,無(wú)法購(gòu)買(mǎi)") return; } this.num-- ; },
方法中可以獲取 event 對(duì)象,從中可以獲取一些事件信息
2.3 事件方法中增加參數(shù)
methods : { decr(n) { if(this.num < 2) { alert("庫(kù)存不足,無(wú)法購(gòu)買(mǎi)") return; } this.num -= n; }, }, template : ` <div> 商品庫(kù)存剩余 {{num}} 件 <button @click="decr(2)">購(gòu)買(mǎi)2件</button><br> </div> `
事件方法 decr 中增加了參數(shù) n,依據(jù)參數(shù)進(jìn)行計(jì)算
2.4 有參事件方法中獲取 event 對(duì)象
methods : { decr(n, event) { console.info(event); console.info(event.target); if(this.num < 2) { alert("庫(kù)存不足,無(wú)法購(gòu)買(mǎi)") return; } this.num -= n; }, }, template : ` <div> 商品庫(kù)存剩余 {{num}} 件 <button @click="decr(2, $event)">購(gòu)買(mǎi)2件</button><br> </div> `
2.5 點(diǎn)擊按鈕執(zhí)行多個(gè)方法
methods : { f1() { alert("f1") }, f2() { alert("f2") }, }, template : ` <div> <button @click="f1(), f2()">執(zhí)行多個(gè)方法</button><br> </div> `
2.6 事件冒泡
methods : { clickDiv() { alert("div"); }, clickButton() { alert("button"); } }, template : ` <div @click="clickDiv"> <button @click="clickButton">事件冒泡</button><br> </div> `
點(diǎn)擊按鈕,會(huì)先執(zhí)行 button 上的 click 事件,然后執(zhí)行 div 上的 click 事件
2.7 阻止冒泡
template : ` <div @click="clickDiv"> <button @click.stop="clickButton">阻止事件冒泡</button><br> </div> `
如果我們希望點(diǎn)擊按鈕時(shí)只執(zhí)行按鈕的事件,可以在按鈕上使用 @click.stop 的寫(xiě)法阻止事件冒泡。
2.8 事件捕獲
template : ` <div @click.capture="clickDiv"> <button @click="clickButton">事件捕獲</button><br> </div> `
如果希望先執(zhí)行 div 事件,再執(zhí)行 button 的事件,可以在 div 上使用 @click.capture 的寫(xiě)法,讓事件由外向內(nèi)執(zhí)行
2.9 事件只執(zhí)行一次
template : ` <div @click.once="clickDiv"> <button @click="clickButton">事件</button><br> </div> `
在 div 上使用 @click.once ,這樣 div 的事件,只會(huì)被執(zhí)行一次
3. 綜述
今天聊了一下 VUE3 的 click 事件,希望可以對(duì)大家的工作有所幫助
到此這篇關(guān)于VUE3基礎(chǔ)學(xué)習(xí)之click事件的文章就介紹到這了,更多相關(guān)VUE3之click事件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
有關(guān)vue 組件切換,動(dòng)態(tài)組件,組件緩存
這篇文章主要介紹了有關(guān)vue 組件切換,動(dòng)態(tài)組件,組件緩存,在組件化開(kāi)發(fā)模式下,我們會(huì)把整個(gè)項(xiàng)目拆分成很多組件,然后按照合理的方式組織起來(lái),達(dá)到預(yù)期效果,下面來(lái)看看文章的詳細(xì)內(nèi)容2021-11-11Vue.config.productionTip?=?false?不起作用的問(wèn)題及解決
這篇文章主要介紹了Vue.config.productionTip?=?false為什么不起作用,本文給大家分析問(wèn)題原因解析及解決方案,需要的朋友可以參考下2022-11-11使用vite搭建ssr活動(dòng)頁(yè)架構(gòu)的實(shí)現(xiàn)
本文主要介紹了使用vite搭建ssr活動(dòng)頁(yè)架構(gòu),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07使用elementUI表單校驗(yàn)函數(shù)validate需要注意的坑及解決
這篇文章主要介紹了使用elementUI表單校驗(yàn)函數(shù)validate需要注意的坑及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06淺談VueUse中useAsyncState的實(shí)現(xiàn)原理
useAsyncState?是 VueUse 庫(kù)中提供的一個(gè)實(shí)用工具,它用于處理異步狀態(tài),本文主要介紹了VueUse中useAsyncState的實(shí)現(xiàn)及其原理,具有一定的參考價(jià)值,感興趣的可以了解一下2024-08-08一文詳解vue-router中的導(dǎo)航守衛(wèi)
vue-router提供的導(dǎo)航守衛(wèi)主要用來(lái)通過(guò)跳轉(zhuǎn)或取消的方式守衛(wèi)導(dǎo)航,在 vue-router 中,導(dǎo)航守衛(wèi)是一種非常重要的功能,所以本文將詳細(xì)講解一下vue-router中的導(dǎo)航守衛(wèi),感興趣的同學(xué)跟著小編一起來(lái)看看吧2023-07-07vue3中路由傳參query、params及動(dòng)態(tài)路由傳參詳解
vue3中的傳參方式和vue2中一樣,都可以用query和params傳參,下面這篇文章主要給大家介紹了關(guān)于vue3中路由傳參query、params及動(dòng)態(tài)路由傳參的相關(guān)資料,需要的朋友可以參考下2022-09-09