Допустим, у меня есть приложение JavaScript / HTML, которое
- Управляет предметами
- Имеет представление о выбранном предмете
- Получает обновления элементов в реальном времени по мере выполнения приложения.
Если я хочу, чтобы мое приложение использовало неизменяемое состояние (immutable.js, redux, react и т. Д.), Концептуально, как мне синхронизировать обновления элемента в списке с выбранным элементом приложения, если они одинаковы?
Если я использую простые объекты / массивы JavaScript и мутацию, тогда выбранный элемент будет ссылкой на некоторый объект, а список элементов будет фактически списком ссылок на объекты элементов. Если я изменю свойство объекта в списке элементов, оно будет синхронизировано с выбранным элементом, потому что это тот же объект.
Как я смогу справиться с чем-то подобным, если я использую неизменяемое состояние? Если для выбранного элемента пришло обновление, нужно ли мне также не забывать возвращать новое состояние, в котором элемент в списке отличается, а к выбранному элементу применены те же преобразования?
Одна мысль состоит в том, чтобы иметь не выбранный элемент, а выбранный индекс, но когда я переупорядочиваю свой список элементов, должен ли я тогда не забывать возвращать новое состояние, в котором выбранный индекс отличается?
Есть ли шаблоны для работы с чем-то вроде этого?