Vue.js 3 с его Composition API открыл новые горизонты для фронтенд-разработчиков. Он стал мощнее, быстрее и гибче. Но чтобы использовать эти возможности, нужно грамотно настроить окружение для разработки. Сегодня мы создадим проект с Vue 3, используя такие современные инструменты, как Vite, TypeScript, SCSS, и Pinia.

Почему именно Vite, TypeScript, SCSS и Pinia?

  • Vite — это супербыстрая среда для сборки, которая обеспечивает мгновенную перезагрузку и модульную замену на лету. Забыли про долгие ожидания, пока пересоберется проект.
  • TypeScript — помогает писать чистый код с типизацией. Меньше ошибок на этапе разработки, больше контроля и предсказуемости.
  • SCSS — расширяет возможности стандартного CSS, добавляя переменные, вложенность, миксины и другие полезные штуки.
  • Pinia — легковесная библиотека для управления состоянием, которая пришла на замену Vuex и стала идеальной парой к Vue 3.

Создание проекта с Vite

Итак, начнем с создания проекта. Установим шаблон для Vue.js с поддержкой TypeScript через Vite. Это займет буквально пару минут.

npm init vite@latest demo-crm --template vue-ts

Эта команда сделает следующее:

  • Создаст папку demo-crm с базовой конфигурацией для Vue.js и TypeScript.
  • Подключит все необходимые зависимости для быстрого старта.

Когда все завершится, переходим в каталог проекта:

cd demo-crm

Уже видим знакомую структуру: папка src, конфигурационные файлы для Vite и TypeScript, ну и, конечно, готовый к работе шаблон на Vue 3.

Установка зависимостей

Прежде чем запустить проект, установим все необходимые зависимости. Выполняем:

npm install

Эта команда скачает все пакеты, указанные в package.json. Процесс установки может занять несколько минут, так что можно на этом этапе налить себе кофе ☕.

Настройка SCSS

Теперь пришло время поработать со стилями. SCSS — это стиль CSS на стероидах, позволяющий писать код намного удобнее и чище. Чтобы добавить поддержку SCSS в наш проект, выполним следующую команду:

npm install -D sass

С этим пакетом Vite автоматически обработает любые .scss файлы без дополнительных настроек.

Для теста, давайте создадим простой файл стилей. В папке src/assets создайте файл styles.scss и добавьте в него что-нибудь простое:

$main-color: #42b983;

body {
  background-color: $main-color;
  font-family: 'Arial', sans-serif;
}

Теперь подключим этот файл в src/main.ts:

import './assets/styles.scss';

Запустите проект, и вы увидите, как фон страницы окрасился в фирменный цвет Vue.js. Всё работает, как часы.

Установка Pinia для управления состоянием

С состоянием всегда возникают сложности, особенно когда приложение разрастается. Именно тут на помощь приходит Pinia — библиотека для управления состоянием, которая легко интегрируется с Vue 3 и Composition API.

Устанавливаем Pinia командой:

npm install pinia

Теперь нужно подключить Pinia к проекту. Открываем src/main.ts и добавляем следующий код:

import { createApp } from 'vue';
import { createPinia } from 'pinia';
import App from './App.vue';

const app = createApp(App);
app.use(createPinia());
app.mount('#app');

Создадим пример хранилища. В папке src создаем новую папку stores, а в ней файл useUserStore.ts:

import { defineStore } from 'pinia';

export const useUserStore = defineStore('user', {
  state: () => ({
    name: 'John Doe',
    isAuthenticated: false,
  }),
  actions: {
    login() {
      this.isAuthenticated = true;
    },
    logout() {
      this.isAuthenticated = false;
    }
  }
});

Теперь мы можем использовать это хранилище в любом компоненте. Например, в App.vue:

<template>
  <div>
    <p v-if="isAuthenticated">Hello, {{ name }}! You are logged in.</p>
    <button @click="login">Login</button>
    <button @click="logout">Logout</button>
  </div>
</template>

<script setup lang="ts">
import { useUserStore } from './stores/useUserStore';

const store = useUserStore();
const { name, isAuthenticated, login, logout } = store;
</script>

Теперь у нас есть простая система авторизации! Мы можем входить и выходить из системы, а Pinia управляет состоянием приложения.

Запуск и сборка проекта

Ну что, пора запускать проект. Vite делает это максимально просто. В терминале выполним:

npm run dev

Проект откроется по адресу http://localhost:3000, и все изменения в коде будут моментально отражаться в браузере.

Когда проект будет готов к продакшн-сборке, выполняем:

npm run build

Vite создаст оптимизированную версию вашего приложения в папке dist, готовую к развертыванию на сервере.

Итоги

Итак, за несколько шагов мы настроили современное окружение для разработки на Vue.js с использованием Vite, TypeScript, SCSS и Pinia. Теперь у нас есть мощная основа для создания любого веб-приложения, от простой CRM до полноценной платформы.

  • Vite дарит мгновенную сборку и быструю перезагрузку.
  • TypeScript делает код более предсказуемым и защищенным.
  • SCSS позволяет создавать сложные и гибкие стили.
  • Pinia упрощает управление состоянием и делает его интуитивным.

Теперь, когда у вас есть всё необходимое, можно приступить к изучению первых основ Vue 3 приложения с полной уверенностью в своих силах!


Warning: Undefined variable $aff_bottom_mark in /sites/codelab.pro/wp-content/themes/myTheme/dist/partials/post/post_base.php on line 81

Warning: Undefined variable $aff_bottom_info in /sites/codelab.pro/wp-content/themes/myTheme/dist/partials/post/post_base.php on line 85