Initial commit: VoIdeaAI - voice-first AI idea assistant
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
# Выбор фронтенда
|
||||
|
||||
---
|
||||
|
||||
## Decision Tree
|
||||
|
||||
```mermaid
|
||||
graph TD
|
||||
A[Фронтенд?] --> B{SPA или SSR?}
|
||||
B -->|SPA| C[React + Vite + TS]
|
||||
B -->|SSR| D[Next.js]
|
||||
C --> E{Нужен оффлайн?}
|
||||
E -->|Да| F[PWA + vite-plugin-pwa]
|
||||
E -->|Нет| G[Без PWA]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Варианты
|
||||
|
||||
### React + Vite + TypeScript
|
||||
| | |
|
||||
|---|---|
|
||||
| **Когда** | SPA, PWA, мобильное приложение |
|
||||
| **Плюсы** | Популярный, большая экосистема, Vite быстрый, PWA-ready |
|
||||
| **Минусы** | SPA — медленный первый заход (но PWA решает) |
|
||||
|
||||
### Next.js
|
||||
| | |
|
||||
|---|---|
|
||||
| **Когда** | SSR, SEO, контентный сайт |
|
||||
| **Плюсы** | SSR, SEO, App Router |
|
||||
| **Минусы** | Сложнее деплой, не подходит для PWA |
|
||||
|
||||
---
|
||||
|
||||
## Стили
|
||||
|
||||
| Решение | Когда |
|
||||
|---------|-------|
|
||||
| **Tailwind CSS** | Всегда (рекомендовано) |
|
||||
| CSS Modules | Если Tailwind не подходит |
|
||||
| CSS-in-JS | Не рекомендуется (производительность) |
|
||||
|
||||
---
|
||||
|
||||
## Состояние
|
||||
|
||||
| Решение | Когда |
|
||||
|---------|-------|
|
||||
| **React Context + hooks** | Маленькое приложение (< 5 страниц) |
|
||||
| **zustand** | Среднее приложение (рекомендовано) |
|
||||
| **RTK** | Большое приложение с множеством запросов |
|
||||
|
||||
---
|
||||
|
||||
## PWA
|
||||
|
||||
**Когда нужен:**
|
||||
- Приложение должно работать оффлайн
|
||||
- Пользователи на мобильных устройствах
|
||||
- Нужно push-уведомления
|
||||
|
||||
**Технологии:**
|
||||
- `vite-plugin-pwa` — генерация service worker
|
||||
- `manifest.json` — установка на домашний экран
|
||||
- IndexedDB — оффлайн-хранение
|
||||
|
||||
---
|
||||
|
||||
## [ASK]
|
||||
|
||||
- Нужен ли фронтенд вообще? (API-first или full-stack?)
|
||||
- SPA или SSR? (SPA+PWA для приложений, SSR для контента)
|
||||
- Нужна ли PWA? (да, если мобильные пользователи и оффлайн)
|
||||
- Какой Router? (react-router-dom — стандарт)
|
||||
Reference in New Issue
Block a user