solid-js - Solid JS 是否有 React.useCallback 的等价物?

标签 solid-js

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 不应调用其他信号 setter ,这是为了让 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());
});

如果您的用例需要检索值和调用 setter ,这就是 useEffect 的用途。

关于solid-js - Solid JS 是否有 React.useCallback 的等价物?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71104273/

相关文章:

typescript - Solid.js <select> onchange 事件 : Property 'value' does not exist on type 'EventTarget'

typescript - 使用 :___ throw errors for typescript in JSX 的 SolidJS 指令

solid-js - 如何在 Solid.js 中使用 Ref?

javascript - SolidJS - 如何获取当前组件实例

javascript - SolidJS : Updating component based on value served by Context's store?

solid-js - Solid JSX 中的动态标签名称