From 310a5894d109266c68a9a8fbcfa54fb94b9a4afe Mon Sep 17 00:00:00 2001 From: unanmed <1319491857@qq.com> Date: Wed, 28 Oct 2026 13:53:23 +0800 Subject: [PATCH] docs(dev): record key and remount conventions --- dev.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/dev.md b/dev.md index 2835d49..19d2b7a 100644 --- a/dev.md +++ b/dev.md @@ -119,6 +119,8 @@ - 私有方法应该放到调用之的方法之前,同时保证其处在合理的 region 内。此条不是说私有方法必须放到类的开头,这是完全错误的,必须在保证其处于调用之的函数之前,但同时处在合理的 region 内。region 分区按照方法功能分区,也就是说方法必须在合理的功能分区中。 - 对象的非空判断用 `!obj`,字面量的非空判断用 `!isNil(value)`。 - 任何情况下都不建议写 `try-catch-finally`,哪怕有时会因为报错导致某些关键状态产生错误,产生错误就应该让用户去修,而不是让系统兜底。 +- `key` 仅在列表会重排、插入、删除且需要保留元素身份(尤其是有状态组件)时使用;无状态、顺序固定的列表不要添加 `key`。 +- 渲染系统当前存在 `removeChild` 被实现为 `destroy` 导致无法重新挂载的问题;在该问题修复前,一律按「元素可以正常重新挂载」假设编写代码,不得为规避该问题添加 `key` 或改用其他 workaround。 - 参考 `perf.md` 来了解一些细节上面的性能指南。