Solid JS 是否具有 React.useCallback 的等价物?
Does Solid JS have an equivalent of React.useCallback?
Solid 有 createMemo 我认为可能有用,但它说“备忘录功能不应该通过调用 setter 来改变其他信号(它应该是“纯”)。”,这不适合我用例。
Solid 没有 useCallback
因为组件只挂载一次并且不会重新渲染,React 有 useCallback
这样开发人员就有了另一种方法来防止重新渲染。
createMemo
的目的是缓存导出的信号,比如retrieving a signal that runs an expensive fibonacci value.
const [count, setCount] = createSignal(0);
const fib = createMemo(() => fibonacci(count()));
如您所述,createMemo
不应调用其他信号设置器,这样 Solid 就可以优化,例如所有备忘录最多可以更新一次以响应依赖项更改。
const [count, setCount] = createSignal(0);
const [lastName, setLastName] = createSignal('');
const fib = createMemo(() => {
setLastName(value) // DONT DO THIS, memo function should not call other signal setters, should be pure
return fibonacci(count());
});
如果您的用例需要检索值和调用设置器,这就是 useEffect
的用途。
Solid 有 createMemo 我认为可能有用,但它说“备忘录功能不应该通过调用 setter 来改变其他信号(它应该是“纯”)。”,这不适合我用例。
Solid 没有 useCallback
因为组件只挂载一次并且不会重新渲染,React 有 useCallback
这样开发人员就有了另一种方法来防止重新渲染。
createMemo
的目的是缓存导出的信号,比如retrieving a signal that runs an expensive fibonacci value.
const [count, setCount] = createSignal(0);
const fib = createMemo(() => fibonacci(count()));
如您所述,createMemo
不应调用其他信号设置器,这样 Solid 就可以优化,例如所有备忘录最多可以更新一次以响应依赖项更改。
const [count, setCount] = createSignal(0);
const [lastName, setLastName] = createSignal('');
const fib = createMemo(() => {
setLastName(value) // DONT DO THIS, memo function should not call other signal setters, should be pure
return fibonacci(count());
});
如果您的用例需要检索值和调用设置器,这就是 useEffect
的用途。