指定鍵盤按鍵觸發事件 1 2 3 4 5 6 7 8 9 10 <div id="app"> <label>按enter鍵觸發事件</label> <input type="text" @keyup.enter="keyDown"> <br> <label>按shift+enter鍵觸發事件</label> <input type="text" @keyup.shift.enter="keyDown"> <br> <label>按p鍵觸發事件</label> <input type="text" @keyup.p="keyDown"> </div> 1 2 3 4 5 6 7 Vue.createApp({ methods:{ keyDown(){ console.log("您已成功觸發事件"); } } }).mount("#app"); 按下指定滑鼠鍵觸發事件 1 2 3 4 5 <div id="app"> <button type="button" @click.left="clickMouse">用左鍵按觸發</button> <button type="button" @click.right="clickMouse">用右鍵按觸發</button> <button type="button" @click.middle="clickMouse">用中鍵按觸發</button> </div> 1 2 3 4 5 6 7 Vue.createApp({ methods:{ clickMouse(){ console.log("您已成功觸發事件"); } } }).mount("#app"); 阻止事件冒泡(一般情況) 1 2 3 4 5 6 7 <div id="app"> <ul @click="clickElement('ul')"> <li @click="clickElement('li')"> <button type="button" @click="clickElement('btn')">按鈕</button> </li> </ul> </div> 1 2 3 4 5 6 7 Vue.createApp({ methods:{ clickElement(item){ console.log("您已觸發"+item); } } }).mount("#app"); stopPropagation(防止向外尋找) 1 2 3 4 5 6 7 <div id="app"> <ul @click="clickElement('ul')"> <li @click.stop="clickElement('li')"> <button type="button" @click="clickElement('btn')">按鈕</button> </li> </ul> </div> 1 2 3 4 5 6 7 8 Vue.createApp({ methods:{ clickElement(item){ console.log("您已觸發"+item); } } }).mount("#app"); }).mount("#app"); 事件偵聽器使用capture(事件由外而內) 1 2 3 4 5 6 7 <div id="app"> <ul @click.capture="clickElement('ul')"> <li @click.capture="clickElement('li')"> <button type="button" @click.capture="clickElement('btn')">按鈕</button> </li> </ul> </div> 1 2 3 4 5 6 7 Vue.createApp({ methods:{ clickElement(item){ console.log("您已觸發"+item); } } }).mount("#app"); 事件偵聽器使用self(只觸發自己) 1 2 3 4 5 6 7 <div id="app"> <ul @click.self="clickElement('ul')"> <li @click.self="clickElement('li')"> <button type="button" @click.self="clickElement('btn')">按鈕</button> </li> </ul> </div> 1 2 3 4 5 6 7 Vue.createApp({ methods:{ clickElement(item){ console.log("您已觸發"+item); } } }).mount("#app"); 事件偵聽器使用once(只觸發一次) 1 2 3 4 5 6 7 <div id="app"> <ul @click.once="clickElement('ul')"> <li @click.once="clickElement('li')"> <button type="button" @click.once="clickElement('btn')">按鈕</button> </li> </ul> </div> 1 2 3 4 5 6 7 Vue.createApp({ methods:{ clickElement(item){ console.log("您已觸發"+item); } } }).mount("#app"); Vue3 其他相關 【Vue3】slot元件插巢 【Vue3】實作alert彈跳視窗 【Vue3】emit資料由內傳外 【Vue3】props資料由外傳內 【Vue3】template模板