@aiszlab/relax 2.1.0 → 2.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -14,7 +14,7 @@ var useIdentity = function useIdentity() {
14
14
  if (!signal) {
15
15
  return "".concat(id).concat(count.current++);
16
16
  }
17
- return "".concat(id).concat(signal, ":").concat(count.current++);
17
+ return "".concat(id).concat(signal, "_").concat(count.current++);
18
18
  }, []);
19
19
  return [id, unique];
20
20
  };
@@ -12,7 +12,7 @@ var useIdentity = function useIdentity() {
12
12
  if (!signal) {
13
13
  return "".concat(id).concat(count.current++);
14
14
  }
15
- return "".concat(id).concat(signal, ":").concat(count.current++);
15
+ return "".concat(id).concat(signal, "_").concat(count.current++);
16
16
  }, []);
17
17
  return [id, unique];
18
18
  };
@@ -0,0 +1,31 @@
1
+ 'use strict';
2
+
3
+ var react = require('react');
4
+ var useDefault = require('./use-default.cjs');
5
+
6
+ /**
7
+ * useMemo 作为一个同步函数,在组件`render`过程中会阻塞浏览器渲染
8
+ * useLazyMemo 仅当组件内部需要访问数据时,才会执行计算
9
+ */
10
+ var useLazyMemo = function useLazyMemo(fn, deps) {
11
+ var memorizedValue = react.useRef(null);
12
+ react.useMemo(function () {
13
+ memorizedValue.current = null;
14
+ }, [deps]);
15
+ var compute = useDefault.useDefault(function () {
16
+ return new Proxy({
17
+ value: null
18
+ }, {
19
+ get: function get(target, key) {
20
+ var _memorizedValue$curre;
21
+ if (key !== "value") {
22
+ return Reflect.get(target, key);
23
+ }
24
+ return (_memorizedValue$curre = memorizedValue.current) !== null && _memorizedValue$curre !== void 0 ? _memorizedValue$curre : fn();
25
+ }
26
+ });
27
+ });
28
+ return compute;
29
+ };
30
+
31
+ exports.useLazyMemo = useLazyMemo;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * useMemo 作为一个同步函数,在组件`render`过程中会阻塞浏览器渲染
3
+ * useLazyMemo 仅当组件内部需要访问数据时,才会执行计算
4
+ */
5
+ declare const useLazyMemo: <T>(fn: () => T, deps: unknown[]) => {
6
+ value: T;
7
+ };
8
+ export { useLazyMemo };
@@ -0,0 +1,29 @@
1
+ import { useRef, useMemo } from 'react';
2
+ import { useDefault } from './use-default.mjs';
3
+
4
+ /**
5
+ * useMemo 作为一个同步函数,在组件`render`过程中会阻塞浏览器渲染
6
+ * useLazyMemo 仅当组件内部需要访问数据时,才会执行计算
7
+ */
8
+ var useLazyMemo = function useLazyMemo(fn, deps) {
9
+ var memorizedValue = useRef(null);
10
+ useMemo(function () {
11
+ memorizedValue.current = null;
12
+ }, [deps]);
13
+ var compute = useDefault(function () {
14
+ return new Proxy({
15
+ value: null
16
+ }, {
17
+ get: function get(target, key) {
18
+ var _memorizedValue$curre;
19
+ if (key !== "value") {
20
+ return Reflect.get(target, key);
21
+ }
22
+ return (_memorizedValue$curre = memorizedValue.current) !== null && _memorizedValue$curre !== void 0 ? _memorizedValue$curre : fn();
23
+ }
24
+ });
25
+ });
26
+ return compute;
27
+ };
28
+
29
+ export { useLazyMemo };
package/dist/index.cjs CHANGED
@@ -43,6 +43,7 @@ var useAsyncEffect = require('./hooks/use-async-effect.cjs');
43
43
  var useLazyRef = require('./hooks/use-lazy-ref.cjs');
44
44
  var useScroll = require('./hooks/use-scroll.cjs');
45
45
  var useScale = require('./hooks/use-scale.cjs');
46
+ var useLazyMemo = require('./hooks/use-lazy-memo.cjs');
46
47
  var isRefable = require('./is/is-refable.cjs');
47
48
  var isUndefined = require('./is/is-undefined.cjs');
48
49
  var isNull = require('./is/is-null.cjs');
@@ -139,6 +140,7 @@ exports.useAsyncEffect = useAsyncEffect.useAsyncEffect;
139
140
  exports.useLazyRef = useLazyRef.useLazyRef;
140
141
  exports.useScroll = useScroll.useScroll;
141
142
  exports.useScale = useScale.useScale;
143
+ exports.useLazyMemo = useLazyMemo.useLazyMemo;
142
144
  exports.isRefable = isRefable.isRefable;
143
145
  exports.isUndefined = isUndefined.isUndefined;
144
146
  exports.isNull = isNull.isNull;
package/dist/index.d.ts CHANGED
@@ -45,6 +45,7 @@ export { useAsyncEffect } from "./hooks/use-async-effect";
45
45
  export { useLazyRef } from "./hooks/use-lazy-ref";
46
46
  export { useScroll } from "./hooks/use-scroll";
47
47
  export { useScale } from "./hooks/use-scale";
48
+ export { useLazyMemo } from "./hooks/use-lazy-memo";
48
49
  /**
49
50
  * @description
50
51
  * is
package/dist/index.mjs CHANGED
@@ -41,6 +41,7 @@ export { useAsyncEffect } from './hooks/use-async-effect.mjs';
41
41
  export { useLazyRef } from './hooks/use-lazy-ref.mjs';
42
42
  export { useScroll } from './hooks/use-scroll.mjs';
43
43
  export { useScale } from './hooks/use-scale.mjs';
44
+ export { useLazyMemo } from './hooks/use-lazy-memo.mjs';
44
45
  export { isRefable } from './is/is-refable.mjs';
45
46
  export { isUndefined } from './is/is-undefined.mjs';
46
47
  export { isNull } from './is/is-null.mjs';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aiszlab/relax",
3
- "version": "2.1.0",
3
+ "version": "2.1.1",
4
4
  "description": "react utils collection",
5
5
  "exports": {
6
6
  ".": {