Перейти к содержанию

Часто задаваемые вопросы

Кто поддерживает Vue?

Vue — это независимый, управляемый сообществом проект. Он был создан Эваном Ю в 2014 году в качестве личного сайд-проекта. Сегодня Vue активно поддерживается командой, состоящей из постоянных и добровольных членов со всего мира, где Эван выступает в качестве руководителя проекта. Подробнее об истории создания Vue вы можете узнать из этого документального фильма.

Развитие Vue в основном финансируется за счёт спонсорской помощи, и с 2016 года мы находимся на финансовой стабильности. Если вам или вашему бизнесу полезен Vue, подумайте о том, чтобы спонсировать нас для поддержки развития Vue!

В чём разница между Vue 2 и Vue 3?

Vue 3 — это текущая, последняя основная версия Vue. Он содержит новые возможности, которых нет во Vue 2, такие как Teleport, Suspense и несколько корневых элементов в одном шаблоне. В нем также содержатся изменения, которые делают его несовместимым с Vue 2. Все подробности описаны в Руководстве по миграции.

Несмотря на различия, большинство API-интерфейсов Vue являются общими для двух основных версий, поэтому большинство ваших знаний о Vue 2 будут работать и во Vue 3. Примечательно, что API Composition изначально был функцией только для 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 2 для команд с такими потребностями — если ваша команда планирует использовать Vue 2 после конца 2023 года, обязательно спланируйте всё заранее и узнайте больше о расширенной долгосрочной поддержке Vue 2.

Какую лицензию использует Vue?

Vue — это бесплатный проект с открытым исходным кодом, выпускаемый под лицензией MIT.

Какие браузеры поддерживает Vue?

Последняя версия Vue (3.x) поддерживает только браузеры с нативной поддержкой ES2016. Это не относится к IE11. Vue 3.x использует функции ES2016, которые отсутствуют в старых браузерах, поэтому если вам нужна поддержка старых браузеров, вам придется использовать Vue 2.x.

Надёжен ли Vue?

Vue — это зрелый и проверенный в боях фреймворк. Это один из самых распространённых JavaScript-фреймворков, который сегодня используется в продакшене, насчитывает более 1,5 миллионов пользователей по всему миру и загружается на npm около 10 миллионов раз в месяц.

Vue используется известными организациями различного уровня по всему миру, включая Wikimedia Foundation, NASA, Apple, Google, Microsoft, GitLab, Zoom, Tencent, Weibo, Bilibili, Kuaishou и многие другие.

Быстро ли работает Vue?

Vue 3 — один из самых производительных фронтенд-фреймворков, который с лёгкостью справляется с большинством задач веб-приложений, не требуя ручных оптимизаций.

В сценариях стресс-тестирования Vue с приличным отрывом опережает React и Angular в js-framework-benchmark. Он также идет вровень с некоторыми из самых быстрых фреймворков продакшен-уровня, не относящихся к Virtual DOM, в этом бенчмарке.

Обратите внимание, что синтетические бенчмарки, подобные приведённым выше, ориентированы на производительность отрисовки с использованием специальных оптимизаций и могут не полностью отражать результаты реальной производительности. Если вас больше волнует производительность загрузки страниц, приглашаем вас провести аудит этого сайта с помощью WebPageTest или PageSpeed Insights. Этот сайт работает на основе Vue, с предварительной отрисовкой SSG, полной гидратацией страницы и навигацией SPA на стороне клиента. Он набирает 100 баллов по производительности на эмулированном Moto G4 с 4-кратным дросселированием процессора в медленных сетях 4G.

Подробнее о том, как Vue автоматически оптимизирует производительность во время выполнения, вы можете узнать в главе Механизм отрисовки, а о том, как оптимизировать приложение Vue в особо сложных случаях, — в Руководстве по оптимизации производительности.

Является ли Vue лёгким?

Когда вы используете инструмент сборки, многие API Vue становятся "tree-shakable". Например, если вы не используете встроенный компонент <Transition>, он не будет включен в финальный пакет.

Приложение hello world Vue, использующее только минимальные API, имеет базовый размер около 16 КБ с учётом минификации и сжатия Brotli. Фактический размер приложения будет зависеть от того, сколько дополнительных функций из фреймворка вы используете. В том маловероятном случае, когда приложение использует все возможности, предоставляемые Vue, общий размер составит около 27 КБ.

При использовании Vue без инструмента сборки мы не только теряем древовидность, но и вынуждены поставлять компилятор шаблонов в браузер. В результате размер увеличивается примерно до 41 КБ. Поэтому, если вы используете Vue в основном для прогрессивного улучшения без этапа сборки, подумайте о том, чтобы вместо него использовать petite-vue (всего 6 КБ).

Некоторые фреймворки, например Svelte, используют стратегию компиляции, которая позволяет получить очень лёгкий результат в однокомпонентных сценариях. Однако наше исследование показывает, что разница в размерах сильно зависит от количества компонентов в приложении. Несмотря на то, что Vue имеет больший базовый размер, он генерирует меньше кода на компонент. В реальных условиях приложение на Vue вполне может оказаться легче.

Масштабируется ли Vue?

Да. Несмотря на распространённое заблуждение о том, что Vue подходит только для простых сценариев использования, Vue прекрасно справляется с крупномасштабными приложениями:

  • Однофайловые компоненты обеспечивают модульную модель разработки, которая позволяет разрабатывать различные части приложения изолированно.

  • Composition API обеспечивает первоклассную интеграцию TypeScript и позволяет использовать чистые шаблоны для организации, извлечения и повторного использования сложной логики.

  • Всесторонняя поддержка инструментария обеспечивает плавную разработку по мере роста приложения.

  • Более низкий барьер для входа в систему и отличная документация приводят к снижению затрат на введение в должность и обучение новых разработчиков.

Как внести свой вклад в развитие Vue?

Мы ценим ваш интерес! Пожалуйста, ознакомьтесь с нашим Путеводителем по сообществу.

Следует ли мне использовать Options API или Composition API?

Если вы новичок во Vue, мы предлагаем вам сравнение двух стилей на высоком уровне здесь.

Если вы уже использовали Options API и сейчас оцениваете Composition API, ознакомьтесь с этими ЧаВо.

Следует ли использовать JavaScript или TypeScript с Vue?

Хотя сам Vue реализован на TypeScript и предоставляет первоклассную поддержку этого языка, он не диктует, следует ли вам использовать TypeScript.

Поддержка TypeScript — важный момент при добавлении новых функций во Vue. API, разработанные с учётом TypeScript, как правило, проще для понимания IDE, даже если вы сами не используете TypeScript. Выиграют все. API Vue также разработаны таким образом, чтобы по возможности одинаково работать как в JavaScript, так и в TypeScript.

Переход на TypeScript предполагает компромисс между сложностью внедрения и долгосрочными преимуществами в поддержке. Оправдан ли такой компромисс, может зависеть от опыта вашей команды и масштаба проекта, но Vue не является фактором, влияющим на принятие такого решения.

Чем Vue отличается от веб-компонентов?

Vue был создан до появления веб-компонентов, и некоторые аспекты дизайна Vue (например, слоты) были вдохновлены моделью веб-компонентов.

Спецификации веб-компонентов являются относительно низкоуровневыми, поскольку они сосредоточены на определении пользовательских элементов. Как фреймворк, Vue решает дополнительные задачи более высокого уровня, такие как эффективная отрисовка DOM, реактивное управление состоянием, инструментарий, маршрутизация на стороне клиента и отрисовка на стороне сервера.

Vue также полностью поддерживает потребление или экспорт в собственные пользовательские элементы — подробнее об этом читайте в главе Vue и Руководство по веб-компонентам.

Часто задаваемые вопросы