在一个列表中渲染了多个 `Item` 组件,每个 `Item` 组件内部包含一个非受控的 `<input>` 元素。列表的初始数据为 `[{id: 1}, {id: 2}]`,对应的 `key` 分别为 `1` 和 `2`。用户在第一个 `Item` 的输入框中输入了文本 "hello"。随后,由于父组件状态变更,列表数据更新为 `[{id: 10}, {id: 2}]`,导致第一个 `Item` 的 `key` 从 `1` 变为了 `10`。请问这次重新渲染后,第一个输入框的状态是什么?
输入框中依然是 "hello",因为 React 复用了 DOM 节点
输入框变为空,因为 `key` 变化导致旧组件被卸载,新组件被挂载
文本 "hello" 会转移到第二个 `Item` 的输入框中
由于渲染期间 `key` 发生变化,应用会崩溃