Vue事件處理原理及過程詳解
Vue事件監(jiān)聽的方式貌似違背了關(guān)注點(diǎn)分離(separation of concern)的傳統(tǒng)理念。實(shí)際上,所有的Vue.js事件處理方法和表達(dá)式都嚴(yán)格綁定在當(dāng)前視圖的ViewModel上,它不會(huì)導(dǎo)致維護(hù)上的困難,使用v-on有以下好處:
1、掃一眼HTML模板便能輕松定位在JS代碼里對(duì)應(yīng)的方法。
2、無須在JS里手動(dòng)綁定事件,ViewModel代碼可以是非常純粹的邏輯,和DOM完全解耦,更易于測(cè)試。
3、當(dāng)一個(gè)ViewModel被銷毀時(shí),所有的事件處理器都會(huì)自動(dòng)被刪除,無須擔(dān)心自己如何清理它們。
事件處理步驟
1. 綁定監(jiān)視
2. 事件修飾符
3. 按鍵修飾符
代碼如下
<!DOCTYPE html><html lang='en'><head> <meta charset='UTF-8'> <title>Title</title></head><body><!--列表過濾與排序--><div id='demo'> <h2>綁定監(jiān)聽</h2> <button @click='test1'>test1</button> <button @click='test2(123)'>test2</button> <button @click='test3'>test3</button> <!-- 無參函數(shù),實(shí)際上是傳了$event對(duì)象--> <button @click='test4(1234,$event)'>test4</button> <h2>事件修飾符</h2> <!--存在事件冒泡的情況--> <h3>阻止事件冒泡</h3> <div @click='test5'> <!--@click.stop 停止事件冒泡 --> <div @click.stop='test6'></div> </div> <br> <h3>阻止事件的默認(rèn)行為</h3> <a rel='external nofollow' @click.prevent='test7'>去百度</a> <br> <h2>按鍵修飾符</h2> <!-- <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='http://www.leifengta.com.cn/bcjs/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() //原生的方式阻止事件的默認(rèn)行為alert(’點(diǎn)擊,但是通過@click.prevent阻止事件的默認(rèn)行為,不會(huì)跳轉(zhuǎn)到百度去了’) }, test8(event){//原始寫法;//if (event.keyCode === 13){ // Enter鍵// alert(event.target.value)//}alert(event.target.value) } } });</script></body></html>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. ASP新手必備的基礎(chǔ)知識(shí)2. Docker 啟動(dòng)Redis 并設(shè)置密碼的操作3. CentOS郵箱服務(wù)器搭建系列——SMTP服務(wù)器的構(gòu)建( Postfix )4. asp文件用什么軟件編輯5. PHP基礎(chǔ)之生成器4——比較生成器和迭代器對(duì)象6. vue限制輸入數(shù)字或者保留兩位小數(shù)實(shí)現(xiàn)7. 利用CSS制作3D動(dòng)畫8. python 實(shí)現(xiàn)有道翻譯功能9. JS中6個(gè)對(duì)象數(shù)組去重的方法10. 用PyCharm輕松安裝Python插件

網(wǎng)公網(wǎng)安備