@better-typed/react-lifecycle-hooks

React lifecycle turned into dev friendly hooks

Usage no npm install needed!

<script type="module">
  import betterTypedReactLifecycleHooks from 'https://cdn.skypack.dev/@better-typed/react-lifecycle-hooks';
</script>

README

@better-typed/react-lifecycle-hooks

NPM npm bundle size npm type definitions NPM npm GitHub stars

React lifecycle turned into dev friendly hooks

Features

  • :rocket: Simple, fast and light
  • :factory: No external dependencies

Install

npm install --save @better-typed/react-lifecycle-hooks

or

yarn add @better-typed/react-lifecycle-hooks

Usage

import React from "react";
import { useDidMount, useDidRender, useDidUpdate, useWillUnmount } from "@better-typed/react-lifecycle-hooks";

const MyComponent: React.FC = () => {
  const [isOpen, setIsOpen] = React.useState(false)

  // Called first
  useDidMount(() => {
    // ...
  })

  // Called second, when initial DOM changes are triggered
  useDidRender(() => {
    // ...
  })

  // Called when isOpen change
  useDidUpdate(() => {
    // ...
  }, [isOpen])

  // Called when isOpen change, also on mount
  useDidUpdate(() => {
    // ...
  }, [isOpen], true)

  // Called last
  useWillUnmount(() => {
    // ...
  })


  return (
    // ...
  )
}