Часто задаваемые вопросы
Кто поддерживает Vue?
Vue - это независимый, управляемый сообществом проект. Он был создан Эваном Ю в 2014 году как личный сайд-проект. Сегодня Vue активно поддерживается командой, состоящей из штатных сотрудников и волонтеров со всего мира, где Эван выступает в качестве руководителя проекта. Вы можете узнать больше об истории Vue в этом документальном фильме.
Развитие Vue финансируется в основном за счет спонсорской помощи, и с 2016 года мы финансово устойчивы. Если вам или вашему бизнесу полезен Vue, рассмотрите возможность спонсирования нас, чтобы поддержать развитие Vue!
В чем разница между Vue 2 и Vue 3?
Vue 3 - это текущая, последняя основная версия Vue. Она содержит новые функции, которых нет во Vue 2, такие как Teleport, Suspense и несколько корневых элементов в шаблоне. Эта версия также содержит изменения, которые делают ее несовместимой с Vue 2. Все подробности описаны в Vue 3 - Руководство по миграции.
Несмотря на различия, большинство API Vue являются общими для двух основных версий, поэтому большинство ваших знаний, полученных во Vue 2, будут работать и во Vue 3. Примечательно, что Composition API изначально был функцией только для Vue 3, но теперь он был перенесен на Vue 2 и доступен во Vue 2.7.
В целом, Vue 3 предлагает меньший итоговый размер бандла, лучшую производительность, лучшую масштабируемость и лучшую поддержку TypeScript / IDE. Если вы начинаете новый проект сегодня, Vue 3 - это рекомендуемый выбор. Есть лишь несколько причин, по которым вы можете рассмотреть Vue 2:
- Вам необходимо поддерживать IE11. Vue 3 использует современные возможности JavaScript и не поддерживает IE11.
Если вы собираетесь перенести существующее приложение с Vue 2 на Vue 3, обратитесь к руководству по миграции.
Vue 2 еще поддерживается?
Vue 2.7, который был выпущен в июле 2022 года, является последним минорным релизом в линейке версий Vue 2. Vue 2 перешел в режим технического обслуживания: он больше не будет предоставлять новую функциональность, но продолжит получать исправления критических ошибок и обновления безопасности в течение 18 месяцев, начиная с даты выпуска 2.7. Это означает, что Vue 2 достигнет конца срока службы 31 декабря 2023 года.
Мы считаем, что у большинства проектов экосистемы будет достаточно времени для перехода на Vue 3. Однако мы также понимаем, что могут быть команды или проекты, которые не смогут перейти на Vue 3 в указанные сроки, но при этом должны выполнять требования безопасности и соответствия. Мы сотрудничаем с отраслевыми экспертами, чтобы обеспечить расширенную поддержку Vue 2 для команд с такими потребностями - если ваша команда планирует использовать Vue 2 после конца 2023 года, обязательно спланируйте все заранее и узнайте больше о долгосрочной поддержке Vue 2.
Какую лицензию использует Vue?
Vue - это бесплатный проект с открытым исходным кодом, выпускаемый под лицензией MIT License.
Какие браузеры поддерживает Vue?
Последняя версия Vue (3.x) поддерживает только браузеры с нативной поддержкой ES2015. Это исключает IE11. Vue 3.x использует функции ES2015, которые не могут быть реализованы в устаревших браузерах, поэтому если вам нужна поддержка устаревших браузеров, вам придется использовать Vue 2.x.
Надежен ли Vue?
Vue - это зрелый и проверенный в боях фреймворк. Это один из самых широко используемых JavaScript-фреймворков сегодня в продакшене, с более чем 1,5 миллионами пользователей по всему миру, и его загружают около 10 миллионов раз в месяц на npm.
Vue используется в производстве известными организациями разного уровня по всему миру, включая Wikimedia Foundation, NASA, Apple, Google, Microsoft, GitLab, Zoom, Tencent, Weibo, Bilibili, Kuaishou и многие другие.
Быстро ли работает Vue?
Vue 3 - один из самых производительных фронтенд-фреймворков, который с легкостью справляется с большинством задач веб-приложений, не требуя ручных оптимизаций.
В сценариях стресс-тестирования Vue превосходит React и Angular с приличным отрывом в js-framework-benchmark. Кроме того, в этом бенчмарке он идет вровень с некоторыми из самых быстрых фреймворков продакшн уровня, которые не используют виртуальный DOM.
Обратите внимание, что синтетические бенчмарки, такие как приведенные выше, ориентированы на простую производительность рендеринга со специальными оптимизациями и могут не полностью отражать реальные результаты производительности. Если вас больше волнует производительность загрузки страниц, вы можете проверить этот сайт с помощью WebPageTest или PageSpeed Insights. Этот сайт работает на Vue, с предварительным рендерингом SSG, гидратацией целой страницы и навигацией SPA на стороне клиента. Он набрал 100 баллов производительности на эмулированном Moto G4 с 4-кратным троттлингом процессора при медленном 4G.
Подробнее о том, как Vue автоматически оптимизирует производительность во время рантайма, вы можете узнать в разделе механизм рендеринга, а о том, как оптимизировать приложение на Vue в особо сложных случаях, - в руководстве по оптимизации производительности.
Много ли весит Vue?
Когда вы используете инструмент сборки, многие API Vue становятся "tree-shakable". Например, если вы не используете встроенный компонент <Transition>
, он не будет включен в продакшен бандл.
Базовый размер приложения "Привет мир" Vue, использующего только минимальные API, составляет всего 16 Кб с учетом минификации и сжатия Brotli. Фактический размер приложения будет зависеть от того, сколько дополнительных функций фреймворка вы используете. В маловероятном случае, когда приложение использует все возможности Vue, общий размер во время выполнения составит около 27kb.
При использовании Vue без инструмента сборки мы не только теряем tree-shaking, но и вынуждены доставлять компилятор шаблонов в браузер. Это увеличивает размер примерно до 41 кб. Поэтому, если вы используете Vue в основном для улучшения без шага сборки, подумайте об использовании petite-vue (всего 6kb) вместо основного пакета.
Некоторые фреймворки, например Svelte, используют стратегию компиляции, которая позволяет получить чрезвычайно легкий результат в случаях одиночных компонентов. Однако наше исследование показывает, что разница в размере сильно зависит от количества компонентов в приложении. Хотя Vue имеет более тяжелый базовый размер, он генерирует меньше кода для одного компонента. В реальных сценариях приложение на Vue вполне может оказаться легче.
Масштабируется ли Vue?
Да. Несмотря на распространенное заблуждение, что Vue подходит только для простых сценариев использования, Vue прекрасно справляется с крупномасштабными приложениями:
Однофайловые компоненты обеспечивают модульную модель разработки, которая позволяет разрабатывать различные части приложения изолированно друг от друга.
Composition API обеспечивает первоклассную интеграцию TypeScript и позволяет использовать паттерны для организации, извлечения и переиспользования сложной логики.
Всесторонняя поддержка инструментария обеспечивает плавный DX по мере роста приложения.
Более низкий барьер для входа и отличная документация приводят к снижению затрат на онбординг и обучение новых разработчиков.
Как внести свой вклад в развитие Vue?
Мы ценим ваш интерес! Пожалуйста, ознакомьтесь с нашим руководством сообщества.
Следует ли мне использовать Options API или Composition API?
Если вы новичок во Vue, мы предлагаем вам поверхностное сравнение двух стилей здесь.
Если вы уже использовали Options API и сейчас рассматриваете Composition API, ознакомьтесь с этим FAQ.
Следует ли использовать JavaScript или TypeScript с Vue?
Хотя сам Vue реализован на TypeScript и обеспечивает первоклассную поддержку TypeScript, он не навязывает мнение о том, следует ли вам использовать TypeScript в проекте.
Поддержка TypeScript - важный момент при добавлении новых функций во Vue. API, разработанные с учетом TypeScript, обычно проще для понимания IDE и линтеров, даже если вы сами не используете TypeScript. Выигрывают все. API Vue также разработаны таким образом, чтобы по возможности одинаково работать как на JavaScript, так и на TypeScript.
Принятие TypeScript подразумевает компромисс между сложностью внедрения и долгосрочными преимуществами в поддержке. Оправдан ли такой компромисс, может зависеть от опыта вашей команды и масштаба проекта, но Vue не является фактором, влияющим на принятие этого решения.
Чем Vue отличается от веб-компонентов?
Vue был создан до возможности нативного использования веб-компонентов в браузерах, и некоторые аспекты дизайна Vue (например, слоты) были вдохновлены моделью веб-компонентов.
Спецификации веб-компонентов являются относительно низкоуровневыми, поскольку они сосредоточены на определении пользовательских элементов. Как фреймворк, Vue решает дополнительные проблемы более высокого уровня, такие как эффективный рендеринг DOM, реактивное управление состоянием, инструментарий, маршрутизация на стороне клиента и рендеринг на стороне сервера.
Vue также полностью поддерживает импорт или экспорт в собственные пользовательские элементы - подробнее об этом читайте в Руководство по Vue и Веб компонентам.