Vue — SSR, тесты и production
SSR и Nuxt
Vue в браузере — клиентский рендер. Nuxt — meta-фреймворк: файловый роутинг, SSR/SSG, SEO.
Nuxt имеет смысл для публичных страниц с индексацией и когда важен первый экран без пустой разметки до загрузки JS. Для внутренней админки и учебного SPA на Vite обычно хватает клиентского рендера.
Тестирование
| Уровень | Инструмент |
|---|---|
| Unit | Vitest |
| Компоненты | @vue/test-utils |
| E2E | Playwright, Cypress |
import { mount } from '@vue/test-utils';
import Counter from './Counter.vue';
test('increments', async () => {
const wrapper = mount(Counter);
await wrapper.find('button').trigger('click');
expect(wrapper.text()).toContain('1');
});
Безопасность SPA
- не вставляйте непроверенный HTML (
v-htmlтолько для доверенного контента); - токены — httpOnly cookie или заголовки, не localStorage для чувствительных сессий;
- CSP на production.
Производительность
- ленивые маршруты:
component: () => import('./views/Heavy.vue'); defineAsyncComponentдля тяжёлых виджетов;- виртуализация длинных списков;
- анализ bundle:
vite build --report.
CI/CD
Типичный pipeline:
npm ci
npm run lint
npm run test
npm run build
Артефакт dist/ → статический хостинг или Docker + Nginx.