Вот цифры
- min + gzip 26k
- gzip 90k
- оригинал 450 + k
И React не содержит много функций в документации. Почему он так велик?
У меня такое ощущение, что это реализация облегченного DOM. Но я хочу быть уверенным.
Вот цифры
И React не содержит много функций в документации. Почему он так велик?
У меня такое ощущение, что это реализация облегченного DOM. Но я хочу быть уверенным.
Реакция идет совсем немного! Самая большая неочевидная часть React - это, вероятно, система событий - не только React реализует собственную диспетчеризацию событий и пузырь, он нормализует общие события в браузерах, поэтому вам не нужно беспокоиться об этом. Например, SelectEventPlugin является встроенным событием "плагин", который предоставляет событие onSelect
, которое ведет себя одинаково во всех браузерах.
Реализация "виртуальной DOM" также требует достойного количества кода; на оптимизацию производительности затрачивается много усилий, поэтому в неиниминированную версию входит ReactPerf, которая является инструментом для измерения производительности рендеринга. При обновлении DOM React также делает некоторые удобные вещи для вас, как поддержание любого выбора ввода и сохранение текущей позиции прокрутки.
Реакция также имеет несколько других трюков в рукаве. Один из самых классных - это то, что он полностью поддерживает рендеринг компонента в строку HTML, даже если у вас нет среды браузера, поэтому вы можете отправить страницу, которая работает даже до загрузки JS.
С чем вы сравниваете React? response-15.0.2.min.js - 43k (gzipped), но jQuery - 33k, тогда как ember-2.6.0.prod.js - 363k (также gzipped). Очевидно, что эти структуры не выполняют точно то же самое, но у них много перекрытий, поэтому я считаю, что сравнение разумно.
Если вы беспокоитесь о размере загрузки, я бы не стал слишком беспокоиться о том, что JS-код способствует этому. Здесь объявление, которое я вижу в правой части моей страницы прямо сейчас:
Его размер загрузки составляет 95 тыс. - я бы не подумал дважды о включении такого изображения на странице, потому что (даже если меня беспокоило производительность), как правило, так много других проблем, связанных с производительностью, для исправления, которые больше прибыльный.
Короче говоря, я не думаю, что React такой большой, и какой размер он действительно имеет, это из-за многих мелких вещей, которые он делает, чтобы помочь вам. Вы цитируете React small API в качестве причины того, что код React должен быть небольшим, но лучшим может быть вопрос: "Как React API может быть настолько простым, учитывая все, что он делает для вас?"
... но это совершенно отдельный вопрос.:) Надеюсь, я ответил на ваш вопрос - рад расширить, если я этого не сделал.
Несколько мыслей. У меня были некоторые из тех же проблем с этим размером, но после его использования, без шуток, я бы использовал его, если он был размером 5 МБ. Это просто хорошо. Тем не менее, я решил уменьшить как можно больше зависимостей от других библиотек. Я использовал jquery для двух вещей: ajax и автоматический ответ ajax и обработку запросов (beforeSend и т.д.), Которые будут обрабатывать, когда токен был в ответе после входа в систему, а затем убедитесь, что каждый запрос ajax добавил его в заголовок авторизации перед отправка. Я заменил это на супер маленький простой бит собственного javascript. Прекрасно работает. Кроме того, я пытался использовать _underscore. Я заменил его lodash, который меньше и быстрее, хотя в настоящее время я его не использую, поэтому он может полностью удалить его.
Вот одна статья из многих в google, которую я обнаружил, что имеет некоторые альтернативы, используя встроенный JS поверх jquery.
http://www.sitepoint.com/jquery-vs-raw-javascript-1-dom-forms/