React事件處理筆記一

React 元素的事件處理和 DOM 元素類似。但是有一點語法上的不同:React 事件綁定屬性的命名采用駝峰式寫法,而不是小寫。如果采用 JSX 的語法需要傳入一個函數(shù)作為事件處理函數(shù),而不是一個字符串(DOM 元素的寫法)

HTML 通常寫法是:

<button onclick="activateLasers()">? 激活按鈕</button>

React 中寫法為:

<button onClick={activateLasers}>? 激活按鈕</button>

在 React 中另一個不同是你不能使用返回?false?的方式阻止默認行為, 你必須明確的使用?preventDefault。

例如,通常在 HTML 中阻止鏈接默認打開一個新頁面,可以這樣寫:

<a href="#" onclick="console.log('點擊鏈接'); return false">? 點我</a>

在 React 的寫法為:

function ActionLink() {? function handleClick(e) {? ? e.preventDefault();

? ? console.log('鏈接被點擊');

? }

? return (? ? <a href="#" onClick={handleClick}>

? ? ? 點我

? ? </a>

? );}

實例中 e 是一個合成事件。

使用 React 的時候通常不需要使用 addEventListener 為一個已創(chuàng)建的 DOM 元素添加監(jiān)聽器。僅僅需要在這個元素初始渲染的時候提供一個監(jiān)聽器。

當使用 ES6 class 語法來定義一個組件的時候,事件處理器會成為類的一個方法。例如,下面的 Toggle 組件渲染一個讓用戶切換開關(guān)狀態(tài)的按鈕:

class Toggle extends React.Component {

? constructor(props) {

? ? super(props);

? ? this.state = {isToggleOn: true};

? ? // 這邊綁定是必要的,這樣 `this` 才能在回調(diào)函數(shù)中使用

? ? this.handleClick = this.handleClick.bind(this);

? }

? handleClick() {

? ? this.setState(prevState => ({

? ? ? isToggleOn: !prevState.isToggleOn

? ? }));

? }

? render() {

? ? return (

? ? ? <button onClick={this.handleClick}>

? ? ? ? {this.state.isToggleOn ? 'ON' : 'OFF'}

? ? ? </button>

? ? );

? }

}

ReactDOM.render(

? <Toggle />,

? document.getElementById('example')

);

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • React元素的事件處理和 DOM元素的很相似。但是有一點語法上的不同: !React事件綁定屬性的命名采用駝峰式...
    Galette_LJ閱讀 712評論 0 0
  • 深入JSX date:20170412筆記原文其實JSX是React.createElement(componen...
    gaoer1938閱讀 8,183評論 2 35
  • 3. JSX JSX是對JavaScript語言的一個擴展語法, 用于生產(chǎn)React“元素”,建議在描述UI的時候...
    pixels閱讀 2,979評論 0 24
  • 官網(wǎng)地址https://facebook.github.io/react/docs/hello-world.htm...
    pixels閱讀 745評論 0 6
  • 以下內(nèi)容是我在學習和研究React時,對React的特性、重點和注意事項的提取、精練和總結(jié),可以做為React特性...
    科研者閱讀 8,409評論 2 21

友情鏈接更多精彩內(nèi)容