javascript - 通过自分配键防止组件重用?
问题描述
我有许多接收文档道具的小型 React 编辑器组件。我不希望它们被重复使用,所以我为它们添加了一个密钥:
<Editor key={doc1.id} doc={doc1}/>
我很想从组件类内部的 doc.id 自动派生密钥。这可能吗?
我的目标是我有一个更清洁:
<Editor doc={doc1}/>
解决方案
键是一种特殊机制,用于使组件的身份无效(文档明确提到身份问题键正在解决):如果反应树中的反应元素仅在两次渲染传递之间的键不同,则其底层组件将被卸载并重新安装。键主要用于渲染列表或强制卸载/安装特定组件。所以你的问题的答案是否定的
如果没有任何变化,React 已经尝试重用大量 dom 状态,并且有可用的 lyfecycle 方法来防止不需要的重新渲染:shouldComponentUpdate。但是,正如文档所述,使用此生命周期应被视为性能优化,并且在未来将被视为提示而不是指令。除非存在特定的性能问题,否则这可能是过早的优化 IMO。
推荐阅读
- android - 在 Android 8.0 中创建重复文件
- c# - 在c#中将时间(毫秒)转换为日期时间
- javascript - 重定向到另一条路径是否意味着卸载?
- mysql - 使用不同键从同一列进行 MySQL 划分
- ios - 多个标记未显示
- html - 当我使用 iframe dailymotion 全屏时;....博主链接到我的应用程序时,视频会从应用程序中弹出,当我按下后退按钮时应用程序关闭
- c# - 使用 HttpPostedFileBase 在 MailMessage 中添加附件
- angular - 在使用 d3 v4 气泡图的 svg 中,使用 z-index 属性显示圆形充值
- android - 关于程序启动后崩溃,导致studio不打印错误日志的问题
- laravel - 发送给批量收件人时,Laravel Mail 访问邮件视图中的对象?