javascript - 使用匿名箭头函数回调将函数传递给按钮onClick与作为React中的参考?
问题描述
这是从 Udemy 讲师编写的某些代码中的箭头函数组件返回的(deleteAccount()
是从另一个文件引入的 Redux 动作创建者):
<button onClick={() => deleteAccount()}>Delete My Account</button>
以这种方式传递函数和如下所示作为参考之间有什么区别(如果有的话)?
<button onClick={deleteAccount}>Delete My Account</button>
解决方案
执行时会出现性能问题
<button onClick={() => deleteAccount()}>Delete My Account</button>
每次render()
调用时,它将创建一个新的匿名方法,该方法将删除该帐户。此外,通过上述方法,如果要使用event
该方法明确给出的对象onClick
,则需要将代码修改为
<button onClick={(event) => deleteAccount(event)}>Delete My Account</button>
然而,当你使用
<button onClick={deleteAccount}>Delete My Account</button>
假设您使用bind
方法 inconstructor
或使用箭头运算符,则不会在每次render
调用方法时创建匿名函数,而是仅创建一次并使用。这提高了性能。此外,另一方面,从方法传递的所有参数onClick
都将直接传递给方法。
推荐阅读
- unity3d - 我应该在 Unity 的 UI 预制件中包含 Canvas 父游戏对象吗
- powershell - 比较字符串数组并在匹配 Out-GridView 时显示结果?
- json - 从 json 加载引导表中的数据
- c - 难以理解 C 中的函数
- javascript - 数据类型的转换 - Javascript
- javascript - Lodash,找到给定一个 id 数组的每个对象
- node.js - 自发布的 NPM 包添加时不导入任何内容
- ruby-on-rails - 如何让 Sendgrid Inbound Parse Webhook 在生产中的 rails 应用程序中工作?
- python - 将每个实例掩码合并回原始图像 Python
- node.js - 如何在构建期间创建带有转储的 postgreSQL 数据库以在 gitlab-CI 中启动单元测试?