React hooks library
npm install use-compareuse-compare - React Hooks, except using deep comparison on the inputs, not reference equality. You can customize the comparison function.
npm
``shell`
npm i use-compare
yarn
`shell`
yarn add use-compare
pnpm
`shell`
pnpm add use-compare
useDeepCompareEffect
`jsx
import { useDeepCompareEffect } from 'use-compare'
const Button = ({ object, array }) => {
useDeepCompareEffect(() => {
// do something
}, [object, array])
return
}
// Or, You can customize the comparison function.
const isEqual = (prevValue, value) => {
// do your comparison about prevValue and value to return true or false
return boolean
}
const Button = ({ object, array }) => {
useDeepCompareEffect(
() => {
// do something
},
[object, array],
isEqual
)
return
}
`
useDeepCompareCallback
`jsx
import { useDeepCompareCallback } from 'use-compare'
const Button = ({ object, array }) => {
useDeepCompareCallback(() => {
// do something
}, [object, array])
return
}
// Or, You can customize the comparison function.
const isEqual = (prevValue, value) => {
// do your comparison about prevValue and value to return true or false
return boolean
}
const Button = ({ object, array }) => {
useDeepCompareCallback(
() => {
// do something
},
[object, array],
isEqual
)
return
}
`
useDeepCompareMemo
`jsx
import { useDeepCompareMemo } from 'use-compare'
const Button = ({ object, array }) => {
useDeepCompareMemo(() => {
// do something
}, [object, array])
return
}
// Or, You can customize the comparison function.
const isEqual = (prevValue, value) => {
// do your comparison about prevValue and value to return true or false
return boolean
}
const Button = ({ object, array }) => {
useDeepCompareMemo(
() => {
// do something
},
[object, array],
isEqual
)
return
}
``