react-memoise

1.0.2 • Public • Published

Logo

📚 react-memoise - declaratively memoise a computation in a React component 🧠

Given a component pass it some props and a computation and it will re-render with a memoised result.

❤️ React · Jest · Prettier · Flow · Enzyme · ESLint · Babel · Rollup 🙏

CircleCI Status Codecov Coverage Status Made with Coffee

Installation

Just yarn add react-memoise or npm i react-memoise.

Documentation & Examples

Using the Function as a Child pattern

import Memoise from 'react-memoise';

const ParentComponent = props => (
  <Memoise args={[props.a, props.b]} compute={(a, b => a * b)}>
    {computedValue => <code>{computedValue}</code>}
  </Memoise>
);

Using a render-prop

import Memoise from 'react-memoise';

const ParentComponent = props => (
  <Memoise
    args={[props.a, props.b]}
    compute={(a, b => a * b)}
    render={computedValue => <code>{computedValue}</code>}
  />
);

Using a component

import Memoise from 'react-memoise';

const ConsumerComponent = props => <code>{props.computedValue}</code>;

const ParentComponent = props => (
  <Memoise
    args={[props.a, props.b]}
    compute={(a, b => a * b)}
    component={ConsumerComponent}
  />
);

Customization

You can pass in an areArgsEqual prop with the signature of (prevArgs: Args, nextArgs: Args) => boolean to customise the equality check which defaults to a shallow equal.

Package Sidebar

Install

npm i react-memoise

Weekly Downloads

5

Version

1.0.2

License

MIT

Unpacked Size

36.6 kB

Total Files

9

Last publish

Collaborators

  • tdeekens