даже объект)
У меня есть 4 ссылки с json. Они фетчаться и собираются в один объект Грубо говоря let firstObj = fetch('link1.json'); let secondObj = fetch('link2.json'); let thirdObj = fetch('link3.json'); let fourthObj = fetch('link4.json'); let all = { first : firstObj, second: secondObj, third : thirdObj, fourth: fourthObj } И после этого деструктуризирую дочерним компонентам в которых 2 разные логики. <Comp1 {...all}/> <Comp2 {...all}/> В первом используется только first, second и fourth А во втором только third и fourth
Почему бы просто не: <Component {first} {second} /> ?
Это я грубо говоря - на деле там названия длиннее и получается что нужно засорять атрибуты в итоге: <Component1 first={all.first} second={all.second} fourth={all.fourth}/> Всяко читабельнее ж <Component {...all}/>
Насчёт читабельнее я бы поспорил))) очевидно этот объект охватывает более широкую область приложения, чем та к которой компонент должен иметь доступ. Мне кажется это не очень хороший подход. Может свелт и не зря обращает твоё внимание на это
Отфетченные json большие достаточно и чтобы сэкономить пару десятков мегабайт ОЗУ я все json объединяю в один объект и приходится с таким мирится.
Имхо экономия так себе) Вопрос в предметной области каждого компонента. Должны ли все компоненты приложения иметь доступ к абсолютно всем данным, если представить что все данные приложения хранятся в одном огромном объекте? Имхо нет. Компонент каждый имеет совершенно определённый апи который юзер компонента должен соблюдать
В моем случае это интерфейс для низкобюджетных планшетов и каждый десяток мегабайт на счету
Тебе конечно из глубин задачи виднее. Сам я никогда таких замеров не делал, чтобы оценить полезность подобной техники. Тоже пишем под lowpowered, но конкретно такие оптимизации не проводим. Стараемся вообще не держать большое объемы данные на клиенте, ведь чаще всего lowpowered не значит плохое соединение, а значит иной раз лучше на сервер сходить чем держать в памяти
У меня сейчас вышло найти баланс по офлайновости и требованию озу так что пока что считаю способ оправданным =)
Обсуждают сегодня