useOnceEffect

A Hook that avoids React18 useEffect run twice.

Usage

import { useOnceEffect } from "@reactuses/core";
import { useEffect, useState } from "react";

const Demo = () => {
  const [effect, setEffect] = useState(0);
  const [onceEffect, setOnceEffect] = useState(0);

  useOnceEffect(() => {
    setOnceEffect(onceEffect => onceEffect + 1);
  }, []);

  useEffect(() => {
    setEffect(effect => effect + 1);
  }, []);

  return (
    <div>
      <div>onceEffect: {onceEffect}</div>
      <br />
      <div>effect: {effect}</div>
    </div>
  );
};

Example

onceEffect: 0

effect: 0

Type Declarations

declare const _default: typeof useEffect | typeof useLayoutEffect
export default _default