Задать вопрос
@Androbim

Какова оптимальная вложенность компонентов?

Имеет ли смысл многоуровневая вложенность компонентов, если, например, данные передаются вверх через пару-тройку уровней?
Так файлы короче, но страшно становится, если через useState-ы ререндерить родителей по такой лестнице…
Была идея вообще в хранилище построить нечто вроде описательной структуры, чтобы все связи шли через state-ы, ну типа как объекты в Vue.
В принципе, это мое первое приложение, и я готов к тому, что оптимально не будет, лишь бы работало с приемлемым гемором при поддержке…
Но… Может кто-то порекомендует, как лучше построить иерархию, чтобы, для первого раза, не так напряжно?
  • Вопрос задан
  • 126 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 3
Adamos
@Adamos
А вам конкретное число уровней посоветовать?
Так это литературу надо читать. Ответ на этот вопрос дан еще полвека назад.
42.
Ответ написан
Kentavr16
@Kentavr16
long cold winter
вставлю свои пять копеек.

1)
Имеет ли смысл многоуровневая вложенность компонентов, если, например, данные передаются вверх через пару-тройку уровней?


если не вдаваться в философию про идеальную архитектуру, то имеет ли смысл определяете вы сами. Только вам известна логика компонента и то как он гипотетически будет развиваться в будущем. Обобщенно - если это самое простое решение, не мешает дальнейшей поддержке/расширению кода и удовлетворяет хотя бы принцип single responsibility то да, имеет. На практике если имеется передача на несколько уровней вверх - чаще всего проще отрефакторить.

2)
Так файлы короче, но страшно становится, если через useState-ы ререндерить родителей по такой лестнице…


Возможно не до конца понял вопрос. Потому отвечаю как понял)
можно забить и делать как удобно, если это не противоречит здравому смыслу. Если используете пропс дриллинг, просто не злоупотребляйте кол-вом стейтов во вложенных компонентах. По возможности изолируйте дочерний код в стейтлес компоненты. Лучше старый добрый коллбек чем строить пирамиду состояний.

Была идея вообще в хранилище построить нечто вроде описательной структуры, чтобы все связи шли через state-ы, ну типа как объекты в Vue.

Советую подсмотреть существующие подходы в реакте. Все велосипеды уже изобретены до вас.

В принципе, это мое первое приложение, и я готов к тому, что оптимально не будет, лишь бы работало с приемлемым гемором при поддержке…
Но… Может кто-то порекомендует, как лучше построить иерархию, чтобы, для первого раза, не так напряжно?


Мой совет - делайте как получается. Если это первый пет, не задавайтесь вопросами про глубокую оптимизацию структуры и тд. Понаступайте на свои личные грабли, и со временем и опытом вопрос как лучше отпадет сам собой.
Ответ написан
Комментировать
@karminski
Senior React.JS Developer
Ну тут либо пересмотреть архитектура, например посмотреть в сторону Feature-Sliced Design, либо использовать useContext для передачи пропсов по иерархии компонентов. Ну или комбинировать эти подходы.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы