跳至主要内容

useEvent

這是 React RFC useEvent 的基礎實現。它讓你定義的事件處理器可以讀取最新的 props/state,但總是保持穩定的函數引用。

Usage

即時編輯器

function Demo() {
  const [count, setCount] = useState(0);

  const callbackFn = useCallback(() => {
    alert(`當前計數是 ${count}`);
  }, [count]);

  const memoizedFn = useEvent(() => {
    alert(`當前計數是 ${count}`);
  });

  return (
    <>
      <p>計數:{count}</p>
      <button
        type="button"
        onClick={() => {
          setCount(c => c + 1);
        }}
      >
        增加計數
      </button>
      <div style={{ marginTop: 16 }}>
        <button type="button" onClick={callbackFn}>
          調用 callbackFn
        </button>
        <button type="button" onClick={memoizedFn} style={{ marginLeft: 8 }}>
          調用 memoizedFn
        </button>
      </div>
    </>
  );
};

結果

計數:0

API

useEvent

Returns

T

Arguments

參數名描述類型預設值
fn函数T (必填)-
ads via Carbon