簡體   English   中英

React JS 事件監聽器

[英]React JS event listener

我想清楚地了解這之間有什么區別:

...
 <button onClick={(e)=>anyFunction(e)}>Click Me<button>
...

...
 <button onClick={anyFunction}>Click Me<button>
...

它們的工作方式相同,沒問題。 在第二個示例中,anyFunction 仍然可以訪問事件目標,盡管沒有授予它。 但是,有什么區別? 謝謝!

這與反應沒有那么多,但與普通的javascript。 在 javascript 中,您可以將函數傳遞為 arguments,請考慮:

const a = () => 'a function'
const b = fn => fn()

const c = b(() => a()) // 'a function'
const d = b(a) // 'a function'

正如我們在這個例子中看到的那樣。 C和 d 示例的工作方式相同。 Const B收到 function 並執行此操作。 On the C example we're giving B an anonymous function that executes A , however, on the D example we're giving a reference (typeof a === function), in that way D satisfies B arguments which is 'receive an function並執行'。

回到反應示例, onClick 屬性返回一個 function ,它返回合成事件( e ),所以我們有這個:

onClick -> fn -> e

如果你傳遞一個接收 e 的 function 參考,你最終會得到這樣的結果:

onClick -> yourFn(fn -> e)

這樣onClick的返回結果就交給了你的fn。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM