Возьмем, к примеру, React. React 15 и 16 несовместимы друг с другом, но оба они устанавливают переменную window.React.
Теперь рассмотрим приложение, которое может содержать независимые компоненты, которые имеют свои собственные зависимости. Один компонент зависит от React 15, а другой - от React 16. Когда эти два компонента загружены, они будут конфликтовать друг с другом, потому что оба ссылаются на одну и ту же переменную окна.
По этой причине правильно ли рассматривать переменные окна как API? Или я что-то упускаю.
О, у меня нет конкретной проблемы. Мне просто интересно, лучше ли рассматривать переменные окна как API в этом случае.
Что именно это значит? как бы вы относились к ним как к чему-то другому, кроме того, что они есть: свойств глобального объекта window?
Кроме того, это не всегда так: регистрация React в глобальном объекте не выполняется по умолчанию. Если вы используете построитель пакетов, такой как webpack, в глобальном объекте окна ничего не отображается (если вы не хотите явно).
@LucaFabbri Я не знал, что вы можете сделать это с помощью webpack, не могли бы вы связать меня где-нибудь, объясняя этот процесс? Мне интересно, как webpack может помешать React поставить себя на глобальный объект.
@Ogen, если вы используете приложение create-response-app, оно уже работает таким образом, поэтому у вас может быть два разных приложения с разными версиями React на одной и той же странице, хотя я не уверен, что они будут на 100% совместимы, потому что старые версии React IFRC регистрируются обработчики событий в документе.





Это проблема, с которой вы столкнулись конкретно, или вы просто пытаетесь узнать мнение о теоретических случаях?