這篇文章主要為大家展示了“Vue中事件處理原理的示例分析”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Vue中事件處理原理的示例分析”這篇文章吧。
Vue事件監聽的方式貌似違背了關注點分離(separation of concern)的傳統理念。實際上,所有的Vue.js事件處理方法和表達式都嚴格綁定在當前視圖的ViewModel上,它不會導致維護上的困難,使用v-on有以下好處:
1、掃一眼HTML模板便能輕松定位在JS代碼里對應的方法。
2、無須在JS里手動綁定事件,ViewModel代碼可以是非常純粹的邏輯,和DOM完全解耦,更易于測試。
3、當一個ViewModel被銷毀時,所有的事件處理器都會自動被刪除,無須擔心自己如何清理它們。
事件處理步驟
1. 綁定監視
2. 事件修飾符
3. 按鍵修飾符
代碼如下
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<!--列表過濾與排序-->
<div id="demo">
<h3>綁定監聽</h3>
<button @click="test1">test1</button>
<button @click="test2(123)">test2</button>
<button @click="test3">test3</button> <!-- 無參函數,實際上是傳了$event對象-->
<button @click="test4(1234,$event)">test4</button>
<h3>事件修飾符</h3>
<!--存在事件冒泡的情況-->
<h4>阻止事件冒泡</h4>
<div @click="test5">
<!--@click.stop 停止事件冒泡 -->
<div @click.stop="test6"></div>
</div>
<br>
<h4>阻止事件的默認行為</h4>
<a href="http://www.baidu.com" rel="external nofollow" @click.prevent="test7">去百度</a>
<br>
<h3>按鍵修飾符</h3>
<!-- <input type="text" @keyup="test8">--> <!--原始寫法-->
<!--<input type="text" @keyup.13="test8">--> <!--13就是enter鍵的keyCode碼-->
<input type="text" @keyup.enter="test8"/> <!--直接寫名字-->
</div>
<script type="text/javascript" src="lib/vue.min.js"></script>
<script>
new Vue({
el: "#demo",
methods: {
test1(){
alert('test1');
},
test2(number){
alert(number);
},
test3(event){
alert(event.target.innerHTML);
},
test4(number, event){
alert(number + '----' + event.target.innerHTML);
},
test5(){
alert('out')
},
test6(){
alert('inner')
},
test7(){
// event.preventDefault() //原生的方式阻止事件的默認行為
alert('點擊,但是通過@click.prevent阻止事件的默認行為,不會跳轉到百度去了')
},
test8(event){
// 原始寫法;
// if (event.keyCode === 13){ // Enter鍵
// alert(event.target.value)
// }
alert(event.target.value)
}
}
});
</script>
</body>
</html>以上是“Vue中事件處理原理的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。