gpt4 book ai didi

javascript - 如果你调用一个函数,它返回一个箭头函数,作为你的一个组件的属性,返回的箭头函数会被反弹吗?

转载 作者:行者123 更新时间:2023-11-30 19:37:09 24 4
gpt4 key购买 nike

我不想在每次重新渲染时都重新绑定(bind)一个函数。我有一个函数,它返回一个箭头函数(一个隐式绑定(bind)函数),它在渲染期间在另一个组件的属性内调用。

我担心每次重新渲染时这可能会反弹。如果是这样,这意味着我将在每次重新渲染期间为我的组件提供新属性。如果是,我会担心性能问题。

  bar = (foo) => () => {
// Do some things
}

render() {
return (
<For
each="foo"
of={ foos }
>
<ExampleComponent
baz={ this.bar(foo) }
/>
</For>
)
}

我想知道 baz 是否在每次重新渲染期间获得新绑定(bind)的函数。

最佳答案

你是对的 - 每次调用 bar 时都会创建一个新的匿名箭头函数,这将出现在每个渲染器上。

这个问题最常见的解决方案是制作bar一个 memoized 函数,因此它返回与上次使用相同值 foo 调用时相同的函数.只是不要忘记在 memoize 缓存上设置缓存大小限制,否则你的内存使用量将永远不会减少。我建议使用 memoize-one模块。

关于javascript - 如果你调用一个函数,它返回一个箭头函数,作为你的一个组件的属性,返回的箭头函数会被反弹吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55815694/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com