Я использую API с вложенными данными. Данные отправляются небольшими страницами (<10 JSON объектов за раз), и полученная информация используется только на этой странице, но не сохраняется в течение сеанса. Я экспериментировал с Immutable JS и Native JS для хранения JSON. Моя проблема с использованием immutable заключается в том, что для отображения информации в шаблоне она будет go через серию преобразований типов, подобных этой. </p>
JSON -> JS -> ImmutableMap -> JS
Так что я предпочел использовать native JS. Недостатком является то, что API неизменяемого JS очень удобен для извлечения поля на карте с помощью getIn (). В нативном JS я использую квадратные скобки для доступа к полю вложенного объекта.
const A = { B : { C: D }};
const d = A['B']['C'];
Это может быть очень многословно. Я не уверен, что неизменный JS предлагает лучшую производительность для моего варианта использования. Это не большая карта объектов, и я предполагаю, что есть некоторые издержки при преобразовании из JS в неизменяемый обратно в JS. Но я также не уверен, насколько безопасен доступ к свойствам вложенных объектов в квадратных скобках.