1.合成事件的綁定方式
react事件的綁定方式在寫法上與原生的html事件監(jiān)聽器屬性很相似观话,并且含義和觸發(fā)場景也都完全一致蔗候。
2.合成事件的實(shí)現(xiàn)機(jī)制
在react的底層市埋,對(duì)合成事件主要做了兩件事:事件委派和自動(dòng)綁定
? ? 1).事件委派
事件委派并不會(huì)把事件處理函數(shù)直接綁定到真實(shí)的節(jié)點(diǎn)上,而是把所有事件綁定到結(jié)構(gòu)的最外層绊含,使用一個(gè)統(tǒng)一的事件監(jiān)聽器。
? ? 2)自動(dòng)綁定
在react組件中炊汹,每個(gè)方法的上下文都會(huì)指向該組件的實(shí)例躬充,即自動(dòng)綁定this為當(dāng)前組件
綁定方法:
<1>,bind方法,這個(gè)方法可以幫助我們綁定事件處理器內(nèi)的this讨便,并可以向事件處理器中傳遞參數(shù)
<2>,構(gòu)造器內(nèi)聲明麻裳。在組件的構(gòu)造器內(nèi)完成了this的綁定。這種綁定方式的好處在于僅需要一次綁定器钟,而不需要每次調(diào)用事件監(jiān)聽器時(shí)去執(zhí)行綁定津坑。
<3>,箭頭函數(shù)
箭頭函數(shù)不僅是函數(shù)的"語法糖",它還自動(dòng)綁定了定義此函數(shù)作用域的this,因此我們不需要再對(duì)它使用bind方法,
在react中使用DOM原生事件時(shí)傲霸,一定要在組件卸載時(shí)手動(dòng)刪除疆瑰,否則很可能出現(xiàn)內(nèi)存泄漏的問題。而使用合成事件系統(tǒng)時(shí)則不需要昙啄,因?yàn)閞eact內(nèi)部已經(jīng)幫你妥善處理好了穆役。
4.