An open API service indexing awesome lists of open source software.

https://github.com/mrplotnik/vue-test-zhilfond

Управление контактами (Vue 3 (Composition API), Vue CLI, Vuex, SCSS, ESLint, REST API, Axios)
https://github.com/mrplotnik/vue-test-zhilfond

Last synced: 4 months ago
JSON representation

Управление контактами (Vue 3 (Composition API), Vue CLI, Vuex, SCSS, ESLint, REST API, Axios)

Awesome Lists containing this project

README

          

# Управление контактами

## Описание
Vue 3 (Composition API), Vue CLI, Vuex, SCSS, ESLint, REST API, Axios

## Технические особенности
**Разделение ответственности, декомпозиция логики, переиспользуемость:**

Вынесение бизнес-логики в store: Логика обработки данных (например, функции preParse, firstElementIsNumber) вынесена из компонента в отдельные утилиты (файл utils.js). Это сделает компонент более "чистым" и сосредоточенным на рендеринге, а не на обработке данных.

Функция load (файл load.js) обрабатывает запросы и ошибки, делая обработку ответов гибкой.

**Кэширование:**

Данные кэшируются, чтобы не делать повторные запросы на одни и те же данные, если они уже загружены.

**Использование BEM для именования классов:**

Проект использует методологию BEM для именования CSS-классов, чтобы улучшить структуру именования классов.

**Управление состоянием (State Management):**

SideBar и MainContent взаимодействуют с Vuex. Логика работы с состоянием вынесена в store. Компоненты используются только для отображения.

**Обработка ошибок и загрузок:**

Приложение делает асинхронные запросы, поэтому встроена логика обработки ошибок и состояний загрузки. Это влечет отображение спиннера и сообщений об ошибке для улучшения UX.

**Соблюдение принципов SOLID:**

Применены принципы SOLID, особенно Single Responsibility Principle (SRP), чтобы каждый компонент отвечал только за одну задачу.

**Использование модульного подхода в SCSS (миксины и переменные):**

Повторяющиеся CSS-стили вынесении в SCSS-переменные и миксины, чтобы облегчить поддержку стилей в будущем.

**Улучшение доступности:**

Добавлены атрибуты для доступности, таких как role и tabindex.

**Анимация**
Используются Vue Transition для плавного появления карточек.

## Руководство по запуску

1. **Установка зависимостей**:
```bash
npm install
2. **Запуск в режиме разработки**:
```bash
npm run serve
3. **Сборка проекта для production**:
```bash
npm run build