在React 中如何處理事件尖阔?

在 React 中處理事件有幾種常見的方式浸锨,具體取決于你使用的是類組件還是函數(shù)組件。

一:類組件中處理事件:

在類組件中璧亚,可以通過在 JSX 中使用內(nèi)聯(lián)函數(shù)或在類中定義事件處理方法來處理事件。

1:內(nèi)聯(lián)函數(shù):

在 JSX 中直接使用內(nèi)聯(lián)函數(shù)處理事件脂信。例如癣蟋,使用 onClick 處理點擊事件:

class MyComponent extends React.Component {
  handleClick() {
    console.log('Button clicked');
  }

  render() {
    return <button onClick={() => this.handleClick()}>Click Me</button>;
  }
}

2:事件處理方法:

在類組件中定義事件處理方法,然后在 JSX 中使用該方法處理事件狰闪。例如:

class MyComponent extends React.Component {
  handleClick() {
    console.log('Button clicked');
  }

  render() {
    return <button onClick={this.handleClick}>Click Me</button>;
  }
}
二:函數(shù)組件中處理事件:

在函數(shù)組件中疯搅,可以使用 onClick 等事件屬性直接傳遞一個函數(shù)處理事件。

function MyComponent() {
  function handleClick() {
    console.log('Button clicked');
  }

  return <button onClick={handleClick}>Click Me</button>;
}

另一種方式是使用 React.useCallback Hook 來創(chuàng)建一個穩(wěn)定的事件處理函數(shù)埋泵,以避免在每次渲染時創(chuàng)建新的函數(shù)幔欧。

function MyComponent() {
  const handleClick = React.useCallback(() => {
    console.log('Button clicked');
  }, []);

  return <button onClick={handleClick}>Click Me</button>;
}

無論是類組件還是函數(shù)組件,事件處理函數(shù)的命名約定通常是以 "handle" 開頭丽声,然后是事件的名稱礁蔗。例如,handleClick 處理點擊事件雁社,handleChange 處理表單字段的變化事件等浴井。

注意:在事件處理函數(shù)中,不要直接修改組件的狀態(tài)(state)霉撵,而是使用 setState 方法來更新狀態(tài)

React 還提供了一些常見的事件磺浙,

  • 如表單事件(onChange洪囤、onSubmit 等)、
  • 鍵盤事件(onKeyDown撕氧、onKeyUp 等)瘤缩、
  • 鼠標(biāo)事件(onClick、onMouseOver 等)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末伦泥,一起剝皮案震驚了整個濱河市剥啤,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌奄喂,老刑警劉巖铐殃,帶你破解...
    沈念sama閱讀 218,607評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件昙啄,死亡現(xiàn)場離奇詭異崇裁,居然都是意外死亡鞋仍,警方通過查閱死者的電腦和手機篙梢,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評論 3 395
  • 文/潘曉璐 我一進店門沉衣,熙熙樓的掌柜王于貴愁眉苦臉地迎上來碌识,“玉大人衰伯,你說我怎么就攤上這事瞧剖⌒ごВ” “怎么了民假?”我有些...
    開封第一講書人閱讀 164,960評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長龙优。 經(jīng)常有香客問我羊异,道長,這世上最難降的妖魔是什么彤断? 我笑而不...
    開封第一講書人閱讀 58,750評論 1 294
  • 正文 為了忘掉前任野舶,我火速辦了婚禮,結(jié)果婚禮上宰衙,老公的妹妹穿的比我還像新娘平道。我一直安慰自己,他們只是感情好供炼,可當(dāng)我...
    茶點故事閱讀 67,764評論 6 392
  • 文/花漫 我一把揭開白布一屋。 她就那樣靜靜地躺著,像睡著了一般袋哼。 火紅的嫁衣襯著肌膚如雪冀墨。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,604評論 1 305
  • 那天先嬉,我揣著相機與錄音轧苫,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛含懊,可吹牛的內(nèi)容都是我干的身冬。 我是一名探鬼主播,決...
    沈念sama閱讀 40,347評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼岔乔,長吁一口氣:“原來是場噩夢啊……” “哼酥筝!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起雏门,我...
    開封第一講書人閱讀 39,253評論 0 276
  • 序言:老撾萬榮一對情侶失蹤嘿歌,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后茁影,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體宙帝,經(jīng)...
    沈念sama閱讀 45,702評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,893評論 3 336
  • 正文 我和宋清朗相戀三年募闲,在試婚紗的時候發(fā)現(xiàn)自己被綠了步脓。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,015評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡浩螺,死狀恐怖靴患,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情要出,我是刑警寧澤鸳君,帶...
    沈念sama閱讀 35,734評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站患蹂,受9級特大地震影響或颊,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜传于,卻給世界環(huán)境...
    茶點故事閱讀 41,352評論 3 330
  • 文/蒙蒙 一饭宾、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧格了,春花似錦、人聲如沸徽鼎。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽否淤。三九已至悄但,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間石抡,已是汗流浹背檐嚣。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人嚎京。 一個月前我還...
    沈念sama閱讀 48,216評論 3 371
  • 正文 我出身青樓嗡贺,卻偏偏與公主長得像,于是被迫代替她去往敵國和親鞍帝。 傳聞我的和親對象是個殘疾皇子诫睬,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,969評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 今天我們主要說一下React是如何處理事件的。事件的處理是前端開發(fā)過程中非常重要的一部分帕涌,通過事件處理摄凡,我們可以響...
    張培躍閱讀 3,683評論 0 2
  • 處理事件 以Toggle 組件為例,使用該組件渲染一個按鈕蚓曼,使用戶在“ON”和“OFF”狀態(tài)之間切換:當(dāng)使用一個 ...
    初漾流影閱讀 404評論 0 0
  • 用 React 元素處理事件和在DOM元素里處理事件非常相似亲澡。有一些語法差異: React 事件使用駝峰式命名,而...
    天天luck閱讀 956評論 0 0
  • 通過 React 元素處理事件跟在 DOM 元素上處理事件非常相似纫版。但是有一些語法上的區(qū)別: React 事件使用...
    iqing2012閱讀 229評論 0 0
  • 前言 props與state都是用于組件存儲數(shù)據(jù)的一js對象,前者是對外暴露數(shù)據(jù)接口,后者是對內(nèi)組件的狀態(tài),它們決...
    itclanCoder閱讀 2,156評論 0 0