|
hace 5 años | |
---|---|---|
.. | ||
dist | hace 5 años | |
src | hace 5 años | |
types | hace 5 años | |
CHANGELOG.md | hace 5 años | |
README.md | hace 5 años | |
package.json | hace 5 años |
A memoization function that uses a WeakMap
yarn add @emotion/weak-memoize
Because @emotion/weak-memoize uses a WeakMap the argument must be a non primitive type, e.g. objects, functions, arrays and etc. The function passed to weakMemoize
must also only accept a single argument.
import weakMemoize from '@emotion/weak-memoize'
let doThing = weakMemoize(({ someProperty }) => {
return { newName: someProperty }
})
let obj = { someProperty: true }
let firstResult = doThing(obj)
let secondResult = doThing(obj)
firstResult === secondResult // true
let newObj = { someProperty: true }
let thirdResult = doThing(newObj)
thirdResult === firstResult // false