Installation
npm install use-custom-compare
# or
yarn add use-custom-compare
Usage
useCustomCompareEffect
import React from "react";
import { useCustomCompareEffect } from "use-custom-compare";
import isEqual from "lodash/isEqual";
function App({ options }) {
useCustomCompareEffect(
() => {
return () => {
};
},
[options],
(prevDeps, nextDeps) => isEqual(prevDeps, nextDeps)
);
return <div>{/* render significant thing */}</div>;
}
useCustomCompareCallback
import React from "react";
import { useCustomCompareCallback } from "use-custom-compare";
import isEqual from "lodash/isEqual";
function App({ options }) {
const memoized = useCustomCompareCallback(
() => {
},
[options],
(prevDeps, nextDeps) => isEqual(prevDeps, nextDeps)
);
return <div>{/* render significant thing */}</div>;
}
useCustomCompareMemo
import React from "react";
import { useCustomCompareMemo } from "use-custom-compare";
import isEqual from "lodash/isEqual";
function App({ options }) {
const memoized = useCustomCompareMemo(
() => {
},
[options],
(prevDeps, nextDeps) => isEqual(prevDeps, nextDeps)
);
return <div>{/* render significant thing */}</div>;
}
Contributing
Contributions are always welcome! Please read the contributing first.
Inspiration
use-deep-compare-effect
🐋 It's react's useEffect hook, except using deep comparison on the inputs, not reference equality.use-deep-compare
It's react's useEffect/useMemo/useCallback hooks, except using deep comparison on the inputs.use-custom-compare-effect
useEffect hook which takes a comparison function instead of compare using reference equality.
Contributors
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!
License
MIT © Kotaro Sugawara