useMemo.js 565 B

12345678910111213141516
  1. "use strict";
  2. var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
  3. Object.defineProperty(exports, "__esModule", {
  4. value: true
  5. });
  6. exports.default = useMemo;
  7. var React = _interopRequireWildcard(require("react"));
  8. function useMemo(getValue, condition, shouldUpdate) {
  9. var cacheRef = React.useRef({});
  10. if (!('value' in cacheRef.current) || shouldUpdate(cacheRef.current.condition, condition)) {
  11. cacheRef.current.value = getValue();
  12. cacheRef.current.condition = condition;
  13. }
  14. return cacheRef.current.value;
  15. }