@ai0x0/utils 0.11.0 → 0.12.0
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.
- package/README.md +1 -1
- package/eslint-config/index.js +5 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -148,7 +148,7 @@ export default [
|
|
|
148
148
|
];
|
|
149
149
|
```
|
|
150
150
|
|
|
151
|
-
Restrictions cover: `TryStatement`, `as` (non-const), `useState`, `useEffect`, `useMemo`, `useCallback`, `memo()`, native `div/span/p/h` tags, hardcoded colors, `fetch` and `new WebSocket()`.
|
|
151
|
+
Restrictions cover: `TryStatement`, `as` (non-const), `useState`, `useEffect`, `useMemo`, `useCallback`, `useMemoizedFn`, `memo()`, native `div/span/p/h` tags, hardcoded colors, `fetch` and `new WebSocket()`.
|
|
152
152
|
|
|
153
153
|
## Installation
|
|
154
154
|
|
package/eslint-config/index.js
CHANGED
|
@@ -45,6 +45,11 @@ export const allRestrictions = [
|
|
|
45
45
|
selector: "CallExpression[callee.name='useCallback']",
|
|
46
46
|
message: "禁止 useCallback。React Compiler 会自动记忆化,无需手动优化。",
|
|
47
47
|
},
|
|
48
|
+
{
|
|
49
|
+
selector: "CallExpression[callee.name='useMemoizedFn']",
|
|
50
|
+
message:
|
|
51
|
+
"禁止 useMemoizedFn。React Compiler 会自动记忆化:函数只抓不变的值时,引用本来就稳。只有「读着会变的值、引用却必须恒定 / 调用时必须读到最新闭包」才用它(进每个列表项或节点的回调、只在挂载时登记一次的订阅回调、冻住的元素属性、延后执行的回调),用时单行 // eslint-disable-next-line no-restricted-syntax 并注明原因。注意:useXxx 里删掉它之后要是一个 hook 都不剩,React Compiler 就不再编译这个函数。",
|
|
52
|
+
},
|
|
48
53
|
{
|
|
49
54
|
selector:
|
|
50
55
|
":matches(CallExpression[callee.name='memo'], CallExpression[callee.object.name='React'][callee.property.name='memo'])",
|