React添加事件
- 2020 年 4 月 14 日
- 筆記
- javascript
React添加事件,和DOM上添加事件類似,但又有細微的不同.
React添加事件,需要注意:
1.React的事件命名採用小駝峰(camelCase)的命名方式,DOM採用的是純小寫的方式;
2.使用JSX語法時,需要傳入一個函數作為事件的處理函數,DOM傳入的是一個字符串(雖然DOM中傳入的事件名稱也可以是函數名稱,但數據類型還是一個字符串)
DOM元素添加事件
React中添加事件
React中不能通過返回false來阻止元素的默認行為,只能通過顯示的設置preventDefault()來阻止默認的行為,而DOM中阻止元素默認行為的方式有兩種:一種是內聯腳本直接返回false,另外一種是事件處理函數中顯示調用preventDefault方法.
DOM中阻止默認行為的方式:
React中阻止元素默認行為的方法:
事件處理函數中不需要傳入任何參數.
React中元素綁定事件
主要有個this的指向問題,在以類的繼承方式定義的組件中,事件處理函數中的this並不是指向當前的組件.如果我們直接在React元素中使用this就會報異常,因為this並不是指向該組件.那麼我們就需要手動的將this指向到當前組件,才可以使用this,將this綁定到當前組件常用的方法有4中:
1.通過箭頭函數
2.將事件處理函數使用箭頭函數的方法來寫
3.在調用的地方綁定通過bind綁定;
4.在構造函數constructor中提前綁定;
向事件處理函數傳遞參數
很多操作中,我們都需要向事件的處理函數傳遞參數,如在刪除或標記一條數據的時候,需要把當前數據的ID傳遞給事件處理函數,讓它知道去處理哪條數據.
常用的傳遞數值的方式有兩種:
1.箭頭函數的方式
2.通過bind向監聽函數傳參,需要注意在類組件中定義的監聽函數,事件對象e要在傳遞參數的後面
其實無論是使用箭頭函數,還是通過bind綁定監聽事件的方式傳參,事件響應函數中事件對象e,在參數列表中都是排在最後.