Итак, насколько я понимаю, приложение React может отображаться практически внутри любого элемента HTML, на который мы указываем селектором. Почему принято использовать дополнительные <div>
с идентификатором root
, а не просто <body>
?
От создателя Redux (Дэна Абрамова) вот что он может сказать о рендеринге в тело.
If you render directly into document.body, you risk collisions with scripts that do something with it (e.g. Google Font Loader or third party browser extensions) which produce very weird and hard to debug errors in production. React warns you if you attempt to do this.
https://github.com/facebook/create-react-app/issues/1568
Хотя это мало что объясняет. Было бы неплохо иметь список актуальных распространенных проблем (разместить здесь или по ссылке). И скрипты могут возиться с любым элементом, так что с телом это происходит чаще, верно? И не является ли это недостатком тех скриптов, о которых следует сообщать их авторам и исправлять, возможно, с помощью универсального решения или хотя бы под руководством команды React?