Vue.js - Быстрый старт
Создаём boilerplate, команда установит и запустит create-vue — официальный инструмент для развёртывания проектов Vue. Также после запуска будут выводиться подсказки для возможности выбора ряда дополнительных функций, таких как TypeScript или поддержка тестирования:
pnpm create vue@latest
pnpm i && pnpm run devЭкземпляр приложения
Создание любого приложения Vue начинается с создания нового экземпляра приложения:
import { createApp } from "vue";
const app = createApp({
/* опции корневого компонента */
});- Рекомендуемая конфигурация IDE — Visual Studio Code + Vue - Официальное расширение. Если используете другие редакторы, ознакомьтесь с разделом поддержка IDE.
- Больше информации об инструментарии, включая интеграцию с бэкенд-фреймворками, обсуждается в разделе Инструментарий.
- Чтобы узнать больше об используемом инструменте сборки Vite, ознакомьтесь с документацией Vite.
- Если решили использовать TypeScript, ознакомьтесь с инструкцией по использованию TypeScript.
CDN
Если планируете использовать напрямую из CDN, ознакомьтесь с документацией. Крайне аккуратно выбирайте CDN, проверяйте доступность из вашего региона.
Здесь использовали unpkg, но также можно использовать любой другой CDN, который публикует npm-пакеты, например jsdelivr или cdnjs.
Использование глобальной сборки
Пример Vue который загружает глобальную сборку Vue, где все API верхнего уровня доступны как свойства глобального объекта Vue:
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<div id="app"> {{ message }}</div>
<script>
// API верхнего уровня доступны как свойства глобального объекта Vue
// используем destruction для получения нужных нам функций
const { createApp, ref } = Vue
createApp({
setup() {
const message = ref('Hello vue!')
return {
message
}
}
}).mount('#app')
</script>Многие примеры в руководстве по использованию Composition API будут использовать синтаксис <script setup>, который требует использования инструментов сборки. Если вы планируете использовать Composition API без этапа сборки, ознакомьтесь с использованием опции setup().
Использование сборки в виде ES-модуля
Современный способ импорта используется синтаксис ES-модулей.
В большинство современных браузеров теперь встроенна поддержка ES-модулей, поэтому можно подключать Vue из CDN как нативный ES-модуль таким образом:
<div id="app">{{ message }}</div>
<!-- we use ES module script! -->
<script type="module">
import { createApp, ref } from 'https://unpkg.com/vue@3/dist/vue.esm-browser.js'
createApp({
setup() {
const message = ref('Привет Vue!')
return {
message
}
}
}).mount('#app')
</script>Использование Import maps
Для того чтобы использовать лаконичный импорт import { createApp } from 'vue', нужно настроить importmap (поддержка ограничена):
<script type="importmap">
{
"imports": {
"vue": "https://unpkg.com/vue@3/dist/vue.esm-browser.js"
}
}
</script>
<div id="app">{{ message }}</div>
<script type="module">
import { createApp, ref } from 'vue'
createApp({
setup() {
const message = ref('Привет Vue!')
return {
message
}
}
}).mount('#app')
</script>Также можно добавлять записи и для других зависимостей в import map — но убедитесь, что они указывают на версию ES-модуля библиотеки, которую собираетесь использовать.
Разделение на модули
По мере углубления в руководство может понадобиться разделить код на отдельные файлы JavaScript, чтобы ими было легче управлять. Например:
<div id="app"></div>
<script type="module">
import { createApp } from 'vue'
import MyComponent from './my-component.js'
createApp(MyComponent).mount('#app')
</script>import { ref } from 'vue'
export default {
setup() {
const count = ref(0)
return { count }
},
template: `<div>Счётчик: {{ count }}</div>`
}Если напрямую открыть index.html в браузере, то обнаружите, что он выдаёт ошибку, потому что ES-модули не могут работать по протоколу file:// (из-за соображений безопасности). Чтобы исправить эту ситуацию, необходимо раздавать index.html по протоколу http:// с помощью локального HTTP-сервера.
Для запуска локального HTTP-сервера для начала нужно установить Node.js, а затем запустить команду npx serve в том же каталоге, где находится HTML-файл. Можно использовать и любой другой HTTP-сервер, который умеет хостить статические файлы с правильными MIME-типами.
Как можно заметить, шаблон импортируемого компонента указан как строка JavaScript. При использовании VS Code можно установить расширение es6-string-html и добавить к этой строке префикс комментарием /*html*/ чтобы получить подсветку синтаксиса в них.
С помощью какой команды рекомендуется создавать новый проект на Vue (boilerplate)?
[p]npm create vue@latest
С чего начинается создание любого приложения Vue в коде (какой объект создаём)?
С создания экземпляра приложения с помощью функции createApp
Для чего нужны import maps?
Чтобы использовать лаконичный синтаксис импорта (например, import { ... } from 'vue').
Из-за соображений безопасности. ES-модули работают только по протоколу http.
Как быстро запустить локальный HTTP-сервер для тестирования проекта без сложных инструментов сборки (Node.js)?
Выполнить команду npx serve в директории с проектом.
При использовании Composition API напрямую через CDN (без этапа сборки) вы не сможете использовать синтаксис <script setup>. В этом случае необходимо использовать хук ==setup()==.