не должны со сторами работать (только пропсы), а остальное лучше передавать из корневого .svelte или лейаута
насколько сильно я ошибаюсь?
чаще всего приложение сложнее и одного корневого компонента недостаточно. отстюда появляются всякие компоненты-контейнеры, smart/dumb копоненты и все такое
при большой вложенности всё идёт из корневого, а в сильно вложенные кидаю по принципу "надо в дочернем — получи снаружи и передай дальше"
если вложенность большая, а обычно она большая, то прокидывание через пропсы мы получаем так называемый пропс-дриллинг. тогда уж лучше юзать контексты. но часто бывает так, что один и тот же стейт нужен на совершенно разных уровнях иерархии, у которых либо не общего предка, либо это какой-то очень корнекой компонент и засирать его этим стейтом тоже не всегда хорошо
итогда удобно поспринимать приложение как набор “поддеревьев” у которых есть свой собственный рут-компонент. типа изолированных безнес-единиц. на самом деле идеальной архитектуры я не знаю. каждый раз приходится заново думать.
не подкинешь по памяти пример, где это пригодилось бы? мне хочется расширить варианты архитектур, хотя нынешнего видения пока хватает
да много где. просто иногда это подходит, потому что такое решение логически вырисовывается, а иногда UI так устроен, что ну вообще не натягивается. ))
Обсуждают сегодня