3imed-jaberi / use-lifecycle-hooks

Use a class-based lifecycle ⚑ under the React Hooks βš›οΈπŸš€ ..

Home Page:https://www.npmjs.com/package/use-lifecycle-hooks

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

use-lifecycle-hooks


All Contributors Build Status    Coverage Status    NPM version    License    Top Language    Code Size    Code of Conduct PRs Welcome   

Use a class-based lifecycle ⚑ under the React Hooks βš›οΈπŸš€ ..

Thinking in lifecycles terms in hooks is a bad practice.
You can follow this article for a useEffect guide and how it's bad to mix think.

Prerequisites ⚠️:

In order to use this library, a React version >=16.8.0 is required which introduce React Hooks βš›οΈβš‘ ..

Installation

# npm ..
$ npm install use-lifecycle-hooks
# yarn ..
$ yarn add use-lifecycle-hooks

API

Every lifecycle hook can be used more than one time in the same function, observing the hook rulesπŸ“.

Args

Argument Type Descriptio Note
funcs Function callback function only allowed to return void. ******
deps Array all props/states values that change them lead to re-rendering. only in useShuseShouldComponentUpdate.

Undecomented Hooks/HOC

  • [useShouldComponentUpdate][use-should-component-update-docs-url] β€” same with shouldComponentUpdate (and componentDidUpdate with comparison).
  • usePureComponent β€” same as useShouldComponentUpdate.
  • withShouldComponentUpdate β€” same as useShouldComponentUpdate but follow the hoc pattern.

Usage

This is a practical example of how to use. For more, you can review the docs dir.

import React from 'react';
import { useComponentDidMount } from 'use-lifecycle-hooks';

function yourComponent() {
  // <yourComponent />
  // State ..
  const [state, setState] = React.useState(' Hello World !');

  // ComponentDidMount ..
  useComponentDidMount(() => {
    setState(ComponentDidMountMsg);
  });

  return <h1>{state}</h1>;
}

You can play around with it on this sandbox codesandbox.io/use-lifecycle-hooks .. or clone the repo and play around with the all examples in the examples folder πŸ‘».

License


MIT

About

Use a class-based lifecycle ⚑ under the React Hooks βš›οΈπŸš€ ..

https://www.npmjs.com/package/use-lifecycle-hooks

License:MIT License


Languages

Language:JavaScript 52.4%Language:TypeScript 47.6%