通過 React 元素處理事件跟在 DOM 元素上處理事件非常相似同诫。但是有一些語法上的區(qū)別:
- React 事件使用駝峰命名咙俩,而不是全部小寫向胡。
通過 JSX , 你傳遞一個函數(shù)作為事件處理程序矾湃,而不是一個字符串 - 另一個區(qū)別是亡脑,在 React 中你不能通過返回 false(愚人碼頭注:即 return false; 語句) 來阻止默認(rèn)行為。必須明確調(diào)用 preventDefault 邀跃。例如霉咨,對于純 HTML ,要阻止鏈接打開一個新頁面的默認(rèn)行為拍屑,可以這樣寫:
當(dāng)使用一個 ES6 類處理事件
定義一個組件時途戒,通常的一個事件處理程序是類上的一個方法。例如僵驰, Toggle
組件渲染一個按鈕喷斋,讓用戶在 “ON” 和 "OFF" 狀態(tài)之間切換:
- 在JSX回調(diào)中你必須注意 this 的指向。 在 JavaScript 中蒜茴,類方法默認(rèn)沒有 綁定 的继准。如果你忘記綁定 this.handleClick 并將其傳遞給onClick,那么在直接調(diào)用該函數(shù)時矮男,this會是 undefined移必。
- 這不是 React 特有的行為;這是 JavaScript 中的函數(shù)如何工作的一部分毡鉴。 一般情況下崔泵,如果你引用一個后面沒跟 ()的方法,例如 onClick={this.handleClick}猪瞬,那你就應(yīng)該 綁定(bind) 該方法憎瘸。