Поширені запитання та відповіді
Хто займається підтримкою Vue?
Vue - це незалежний проєкт, який керується спільнотою. Він був створений Еваном Ю у 2014 як особистий проєкт. Сьогодні Vue активно підтримується командою штатних розробників та волонтерів з усього світу, де Еван є керівником проєкту. Ви можете дізнатися більше про історію Vue у цьому документальному фільмі.
Розробка Vue фінансується в основному коштом спонсорських внесків, і ми є фінансово стійкими з 2016 року. Якщо ви або ваш бізнес отримуєте користь від Vue, розгляньте можливість спонсорування, щоб підтримати розробку Vue!
Яка різниця між Vue 2 та Vue 3?
Vue 3 - це поточна, остання основна версія Vue. Вона містить нові функції, яких немає у Vue 2, такі як телепорт, саспенс і кілька кореневих елементів у шаблоні. Вона також містить докорінні зміни, які роблять її несумісною з Vue 2. Повна інформація задокументована в гіді з міграції на Vue 3.
Незважаючи на відмінності, більшість API Vue є спільними для двох основних версій, тому більшість ваших знань з Vue 2 продовжать працювати у Vue 3. Зокрема, Композиційний 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 2 для команд з такими потребами - якщо ваша команда планує використовувати Vue 2 після кінця 2023 року, обов'язково сплануйте це заздалегідь і дізнайтеся більше про Vue 2 Extended LTS.
Яку ліцензію використовує Vue?
Vue - це безкоштовний проєкт з відкритим вихідним кодом, випущений під ліцензією MIT.
Які браузери підтримує 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-фреймворків-бенчмарків. Він також йде нарівні з деякими найшвидшими фреймворками без віртуального DOM у цьому тесті.
Зверніть увагу, що синтетичні бенчмарки, подібні до наведених вище, зосереджені на продуктивності рендерингу з використанням спеціальних оптимізацій і можуть не повністю відображати результати реальної продуктивності. Якщо вас більше цікавить швидкість завантаження сторінок, ви можете перевірити цей самий веб-сайт за допомогою WebPageTest або PageSpeed Insights. Цей веб-сайт працює на Vue, з попереднім рендерингом SSG, повною гідратацією сторінки та навігацією на стороні клієнта SPA. Він отримав 100 балів за продуктивність на емуляції Moto G4 з 4-кратним дроселюванням процесора в повільних мережах 4G.
Ви можете дізнатися більше про те, як Vue автоматично оптимізує продуктивність під час виконання, у розділі про механізм рендерингу, а також про те, як оптимізувати додаток Vue в особливо вимогливих випадках, у гіді про оптимізацію продуктивності.
Чи легкий Vue?
Коли ви використовуєте інструмент збірки, багато API Vue є "деревоподібними". Наприклад, якщо ви не використовуєте вбудований компонент <Transition>
, його не буде включено до фінального виробничого пакету.
Простий додаток Vue, який використовує лише мінімум API, має базовий розмір лише близько 16 кб, з мінімізацією та стисненням за принципом "бротлі". Фактичний розмір додатку буде залежати від того, скільки додаткових функцій ви використовуєте з фреймворку. У малоймовірному випадку, коли додаток використовує кожну окрему функцію, яку надає Vue, загальний розмір під час виконання становить близько 27 кб.
При використанні Vue без інструменту збірки ми не тільки втрачаємо "струшування дерев", але й змушені завантажувати компілятор шаблонів у браузер. Це збільшує розмір приблизно до 41 кб. Тому, якщо ви використовуєте Vue в першу чергу для прогресивного вдосконалення без кроку збірки, розгляньте можливість використання petite-vue (лише 6 кб) замість нього.
Деякі фреймворки, такі як Svelte, використовують стратегію компіляції, яка забезпечує надзвичайно легкі результати в однокомпонентних сценаріях. Однак наше дослідження показує, що різниця в розмірі сильно залежить від кількості компонентів у додатку. Хоча Vue має більший базовий розмір, він генерує менше коду на кожен компонент. У реальних умовах додаток Vue цілком може виявитися легшим.
Чи масштабується Vue?
Так. Незважаючи на поширену хибну думку, що Vue підходить лише для простих випадків використання, Vue чудово справляється з великомасштабними додатками:
Однофайлові компоненти забезпечують модульну модель розробки, яка дозволяє розробляти різні частини програми ізольовано.
Композиційний АРІ забезпечує першокласну інтеграцію з TypeScript і дозволяє створювати чисті шаблони для організації, вилучення та повторного використання складної логіки.
Комплексна підтримка інструментів забезпечує безперебійну розробку в міру зростання додатку.
Низький бар'єр для входу та відмінна документація призводять до зниження витрат на адаптацію та навчання нових розробників.
Як я можу зробити свій внесок у розвиток Vue?
Ми цінуємо вашу зацікавленість! Будь ласка, ознайомтеся з нашим Посібником для спільноти.
Чи слід використовувати Опційний API або Композиційний API?
Якщо ви новачок у Vue, ми надаємо високорівневе порівняння цих двох стилів тут.
Якщо ви раніше використовували Опційний API і зараз оцінюєте Композиційний API, перегляньте цей розділ поширених запитань.
Що слід використовувати з Vue: Javascript чи Typescript?
Хоча сам Vue реалізований на TypeScript і забезпечує першокласну підтримку TypeScript, він не нав'язує думку про те, чи варто вам використовувати TypeScript як користувачеві.
Підтримка TypeScript є важливим фактором, коли у Vue додаються нові функції. API, розроблені з урахуванням TypeScript, зазвичай легше зрозуміти IDE та лінтерам, навіть якщо ви самі не використовуєте TypeScript. Від цього виграють усі. API Vue також розроблені так, щоб працювати однаково як на JavaScript, так і на TypeScript, наскільки це можливо.
Впровадження TypeScript передбачає компроміс між складністю при впровадженні та довгостроковими перевагами у підтримці. Наскільки виправданий такий компроміс, може залежати від досвіду вашої команди та масштабу проєкту, але Vue не є фактором, що впливає на прийняття такого рішення.
Як Vue порівнюється з веб-компонентами?
Vue було створено до того, як веб-компоненти стали доступними, і деякі аспекти дизайну Vue (наприклад, слоти) були навіяні моделлю веб-компонентів.
Специфікації веб-компонентів є відносно низькорівневими, оскільки вони зосереджені на визначенні користувацьких елементів. Як фреймворк, Vue вирішує додаткові проблеми більш високого рівня, такі як ефективний рендеринг DOM, управління реактивним станом, інструментарій, маршрутизація на стороні клієнта та рендеринг на стороні сервера.
Vue також повністю підтримує споживання або експорт у власні користувацькі елементи - за додатковою інформацією зверніться до посібника з Vue та веб-компонентів.