Это своего рода вопрос о внутренностях react.js. Вот как я понимаю виртуальный дом.
old (rendered from component <X/>) new (rendered from component <X/>)
null <div>
<AnotherComponent/> <- state {count:0}
<p>{this.state.text}</p>
</div>
при сравнении функция видит, что старый снимок пустой. мы создаем свои элементы, и элементы из компонента <AnotherComponent/>
.
old (rendered from component <X/>) new (rendered from component <X/>)
<div> <div>
<AnotherComponent/> <- state {count:1} <AnotherComponent/> <- state {count:0} ?
<p>Lorem ipsum</p> <p>Lorem ...</p> <- state updates
</div> </div>
допустим, компонент <X/>
обновляется во второй раз, а <AnotherComponent/>
изменил свое состояние до обновления родителя.
хорошо, я сравниваю два снимка, применяю изменения. но <AnotherComponent/>
сбросит свое состояние и у меня будет {count:0}
вместо {count:1}
.
как react.js или любая другая декларативная библиотека js для создания пользовательского интерфейса делают такие вещи. может я что-то не так понимаю.
я думаю, мне нужно получить состояние старого компонента и назначить его новому компоненту. это правильный способ сделать это? Спасибо!