您好,登錄后才能下訂單哦!
這篇文章主要介紹React事件系統和表單操作的示例分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
1.react的事件系統
react事件系統符合W3school標準,不存在任何IE兼容性問題,并且與原生的瀏覽器事件一樣有同樣的API接口。同樣支持事件的冒泡機制,我們可以使用stopPropagation()和preventDefault()來終止它。
所有的事件都自動綁定到最外層。如果需要訪問原生事件對象,可以使用nativeEvent屬性。
2.合成事件
(1)事件委派
react把所有事件綁定到結構的最外層,使用一個同意的事件監聽器,這個事件監聽器上維持了一個映射來保存所有組件內部的事件監聽和處理函數。
(2)自動綁定
在react組件中,每個方法的上下文都會指向該組件的實例,即自動綁定this為當前組件。但是在使用ES6 classes或者純函數時這種自動綁定就不復存在,需要手動實現this的綁定。
(3)綁定方法
3-1:bind方法:可以幫助我們綁定事件處理完器內的this,并且可以向事件處理器中傳入參數,比如:
3-2構造器內聲明(推薦):在組件的構造器內完成對事件的綁定。
3-3箭頭函數:它自動綁定了定義此函數作用域的this。
3.原生事件
componenDidMount會在組件已經完成安裝并且在瀏覽器存在真實的 DOM后調用,此時我們就可以完成對原生事件的綁定。
注意:在react中使用DOM原生事件時,一定要在組件卸載時手動移除,否則可能出現內存泄漏問題。
4.混合事件
我們無法在組件中將事件綁定到組件范圍之外的區域,只能使用原生事件來實現。
但是,盡量在React中混用合成事件和原生DOM事件:用reactEvent.nativeEvent.stopPropagatoin()來阻止事件冒泡是不行的。組織React事件冒泡的行為只適用于React合成系統中,且沒辦法阻止原生事件冒泡。反之,在原生事件中阻止事件冒泡,卻可以阻止React事件的傳播。
以上是“React事件系統和表單操作的示例分析”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。