Я новичок в React.js и стараюсь понять несколько основных концепций, чтобы решить, следует ли использовать эту библиотеку для нашего приложения. Моя основная проблема - это обработка обновления в модели, полученной с сервера.
Представьте себе, что у меня есть страница, которая должна отображать пять разных моделей. Я построил его так, как описано в этой статье: http://facebook.github.io/react/blog/2013/11/05/thinking-in-react.html, поэтому у меня есть "корневой" компонент, в котором все 5 моделей прошли и используя реквизиты, они сводятся к компонентам, которые поддерживают эти модели. Итак, теперь обновлено 2 модели (я получаю эти события из своего кода модели, которые живут вне реагирующих компонентов), и мне нужно отразить это в пользовательском интерфейсе. Каков наилучший способ сделать это?
Я думаю о следующих вариантах:
- Запустите renderComponent с новыми данными еще раз и опирайтесь на методы реагирования DOM diff. Я беспокоюсь об этом, так как мне нужно будет сделать это при любом небольшом изменении данных.
- Вызов setState для компонентов, поддерживающих эти модели. Таким образом, данные становятся не опорой, но состояние, которое (из того, что я понимаю), не является хорошей практикой. Кроме того, я не вижу способа получить ссылку на дочерний компонент вне корневого компонента.
- Имея несколько вызовов renderComponent, таким образом, у меня будет доступ к setProps для любого из этого компонента. Но тогда мне нужно будет сделать некоторые работы по шаблонам (чтобы все контейнеры были доступны на странице), и он убивает всю реакционную идею.
- Наличие одного корневого компонента, включающего все возможные модели в приложении, отображаемого для пользователей, и вызов setProps для изменения моделей. Меня беспокоит, что этот компонент будет расти довольно крупным и стать "спагетти" в какой-то момент + опасениями из точки 1.
Спасибо заранее и надеюсь, что я смог четко объяснить свою проблему.