@custom-react-hooks/use-effect-once
TypeScript icon, indicating that this package has built-in type declarations

1.5.1 • Public • Published

useEffectOnce Hook

useEffectOnce is a custom hook in React designed to mimic the behavior of componentDidMount and componentWillUnmount lifecycle methods in class components. It's a modified version of useEffect that runs only once when the component mounts.

Features

  • Single Execution: The hook executes the provided effect function once upon the component's initial render.
  • Cleanup Capability: It supports an optional cleanup function, returned from the effect, which is called when the component unmounts.
  • SSR Compatibility: As an extension of useEffect, it is naturally compatible with server-side rendering environments.

Installation

Choose and install individual hooks that suit your project needs, or install the entire collection for a full suite of utilities.

Installing Only Current Hooks

npm install @custom-react-hooks/use-effect-once

or

yarn add @custom-react-hooks/use-effect-once

Installing All Hooks

npm install @custom-react-hooks/all

or

yarn add @custom-react-hooks/all

Importing the Hook

The useEffectOnce hook must be imported using a named import as shown below:

Named Import:

import { useEffectOnce } from '@custom-react-hooks/use-effect-once';

This approach ensures that the hook integrates seamlessly into your project, maintaining consistency and predictability in how you use our package.

Usage

import React from 'react';
import { useEffectOnce } from '@custom-react-hooks/all';

const EffectOnceComponent = () => {
  const [fibonacciSequence, setFibonacciSequence] = useState([]);

  const calculateFibonacci = (n) => {
    let sequence = [0, 1];
    for (let i = 2; i < n; i++) {
      sequence[i] = sequence[i - 1] + sequence[i - 2];
    }
    return sequence.slice(0, n);
  };

  useEffectOnce(() => {
    const sequence = calculateFibonacci(5);
    setFibonacciSequence(sequence);
  });

  return (
    <div>
      <p>First {5} numbers in the Fibonacci sequence:</p>
      <ul>
        {fibonacciSequence.map((number, index) => (
          <li key={index}>{number}</li>
        ))}
      </ul>
    </div>
  );
};

export default EffectOnceComponent;

In this example, useEffectOnce is used to perform actions at the mounting and unmounting phases of MyComponent.

API Reference

Parameters

  • effect: A function that will be executed once when the component mounts. This function can optionally return a cleanup function, which will be executed when the component unmounts.

Use Cases

  • Initial Setup: Perform setup operations like fetching initial data or setting up listeners.
  • One-time Calculations: Compute values needed only once during the component's lifecycle.
  • Single API Calls: Make a single API call when a component is rendered for the first time.
  • Non-Recurring Subscriptions: Subscribe to a service or event listener that should only be initialized once.

Contributing

Contributions to enhance useEffectOnce are always welcome. Feel free to submit issues or pull requests to the repository for further improvements.

Readme

Keywords

none

Package Sidebar

Install

npm i @custom-react-hooks/use-effect-once

Weekly Downloads

392

Version

1.5.1

License

MIT

Unpacked Size

6.88 kB

Total Files

8

Last publish

Collaborators

  • djkepa