Одиночка Айс, если грузить по частям — будет приемлемо быстро загружаться. Если корректно перехватывать и обрабатывать ошибки, то весь js не отвалится. Не вводите в заблуждение.
korner-brazers, всё уже придумано и написано. Сборщики занимаются как раз тем, что вам нужно. Например, webpack, как уже написали в комменте к вопросу.
Говоря про магию, я имел ввиду, что под капотом не заложено скрытой функциональности вроде автоматического отслеживания изменений. Этот момент напрямую связан с языком — устанавливая значения полей в конструкторе класса вы просто устанавливаете значения полей, ни больше, ни меньше. Этот класс может быть компонентом, а может быть просто самописным каким-то там классом, не относящимся к реакту, поведение одинаковое.
Не воспринимайте мой комментарий в штыки. В том, как вы изучаете сферу и какие задаёте вопросы, нет ничего плохого и я вас не упрекаю.
Некоторые специалисты считают, что без знания базовых вещей нельзя изучать комплексные. В чём-то они правы, это самый оптимальный путь изучения. Но не единственный. Я тоже прошёл вашим путём и сейчас понимаю, что он оказался сложнее и запутаннее. Но, повторюсь, плохого в этом ничего нет.
0xD34F имел ввиду, что в реакте нет никакой магии. Публичный интерфейс библиотеки написан так, что человек, понимающий язык, не будет задавать подобных вопросов.
Вот декораторы — да, их можно и не сразу вкурить. Если интересно — дерзайте, учите.