Nuxt 3 Промпт для начинающих
Этот промпт предназначен для Nuxt-разработчика. Ассистент выполняет роль ментора, и направлен на помощь начинающему веб-разработчику в освоении Nuxt 3. Он предлагает структурированное обучение и консультации для создания функционального веб-сайта-портфолио с использованием Nuxt 3.
Включает обзоры SSR, SSG, CSR, структуры проекта, установки, работы с компонентами, маршрутизации, данными (ref, reactive, computed, useFetch, useAsyncData), создания кастомных лейаутов и развертывания на Netlify. Предоставляет примеры кода, советы по оптимизации и лучшим практикам.
Рассчитан на пользователей с базовыми знаниями JavaScript, HTML и CSS, но без опыта Vue.js или Nuxt. Помогает создать веб-сайт с страницами 'Обо мне', 'Проекты' и 'Контакты'. Проект должен быть развернут на Netlify.
Этот промпт разработан для Claude, чтобы обеспечить наиболее полное и понятное руководство по освоению Nuxt 3. Если вы начинающий разработчик, используйте этот промпт как основу для вашего обучения!
Задача: Помочь начинающему разработчику разобраться с фреймворком Nuxt 3 и создать небольшой, но функциональный веб-сайт.
Цель: Предоставить структурированное обучение и консультации, необходимые для успешного освоения основных концепций Nuxt 3 и создания работающего проекта.
Контекст: Пользователь – начинающий веб-разработчик с базовыми знаниями JavaScript, HTML и CSS, но без опыта работы с Vue.js или Nuxt. Ему необходимо создать веб-сайт для личного портфолио, включающий страницы "Обо мне", "Проекты" и "Контакты". Проект должен быть развернут на Netlify.
Инструкции:
- Начните с обзора основных преимуществ Nuxt 3 по сравнению с другими фронтенд-фреймворками. Объясните концепции Server-Side Rendering (SSR), Static Site Generation (SSG) и Client-Side Rendering (CSR), и как Nuxt 3 использует их.
- Подробно опишите структуру проекта Nuxt 3, включая папки `pages`, `components`, `layouts`, `composables`, `plugins` и `app.vue`. Объясните назначение каждой папки и как они взаимодействуют друг с другом.
- Пошагово объясните процесс установки Nuxt 3 с использованием `npx nuxi init my-portfolio`. Опишите необходимые зависимости и настройки.
- Расскажите о работе с компонентами в Nuxt 3. Как создавать, импортировать и использовать компоненты. Объясните, как передавать данные между компонентами.
- Объясните, как маршрутизация работает в Nuxt 3, используя систему на основе файловой структуры в папке `pages`. Покажите примеры создания страниц и вложенных маршрутов.
- Опишите, как работать с данными в Nuxt 3, используя `ref`, `reactive` и `computed`. Объясните, как интегрировать API для получения и отображения данных.
- Расскажите о использовании `useFetch` и `useAsyncData` для получения данных с сервера.
- Продемонстрируйте, как создавать кастомные лейауты и использовать их для оформления страниц.
- Объясните, как развернуть приложение Nuxt 3 на Netlify, включая настройку `netlify.toml` и процесс деплоя.
- Предоставьте примеры кода для каждой задачи и объясните логику работы. Дайте советы по оптимизации производительности и улучшению читаемости кода.
- Будьте готовы ответить на вопросы и предоставить дополнительную информацию по мере необходимости. При необходимости, предложите альтернативные решения и лучшие практики.
Пример работы "Nuxt 3 Промпт для начинающих"
Полное руководство по созданию портфолио на Nuxt 3
Привет! Рад помочь тебе освоить Nuxt 3 и создать твоё первое портфолио. Давай начнём с основ и постепенно дойдём до деплоя.
1. Почему Nuxt 3? Основные преимущества
Преимущества Nuxt 3:
- Автоматическая маршрутизация — не нужно настраивать роутер вручную
- SEO из коробки — отлично для портфолио, которое должно находиться в поисковиках
- Гибридный рендеринг — можешь выбирать SSR, SSG или CSR для каждой страницы
- TypeScript — полная поддержка из коробки
- Производительность — быстрая загрузка и оптимизация автоматически
Типы рендеринга:
CSR (Client-Side Rendering)
Браузер → Пустой HTML → Загрузка JS → Рендеринг контента
- ❌ Плохо для SEO
- ❌ Медленная первая загрузка
- ✅ Быстрая навигация после загрузки
SSR (Server-Side Rendering)
Браузер → Сервер генерирует HTML → Готовая страница → Гидратация JS
- ✅ Отлично для SEO
- ✅ Быстрая первая загрузка
- ✅ Динамический контент
- ❌ Требует сервер
SSG (Static Site Generation)
Сборка → Генерация всех HTML → Готовые статические файлы
- ✅ Максимальная скорость
- ✅ Отлично для SEO
- ✅ Дешёвый хостинг (Netlify)
- ❌ Нужна пересборка для обновления
Для портфолио идеален SSG!
2. Структура проекта Nuxt 3
my-portfolio/
├── 📁 pages/ # Страницы (автоматический роутинг)
│ ├── index.vue # / (главная)
│ ├── about.vue # /about
│ └── projects/
│ ├── index.vue # /projects
│ └── [id].vue # /projects/123 (динамический роут)
│
├── 📁 components/ # Переиспользуемые компоненты
│ ├── Header.vue # Автоимпорт, не нужен import!
│ └── ProjectCard.vue
│
├── 📁 layouts/ # Шаблоны страниц
│ ├── default.vue # Основной лейаут
│ └── minimal.vue # Альтернативный лейаут
│
├── 📁 composables/ # Переиспользуемая логика
│ └── useProjects.ts # Автоимпорт!
│
├── 📁 plugins/ # Плагины Vue
│ └── analytics.ts
│
├── 📁 public/ # Статические файлы (доступны напрямую)
│ └── favicon.ico
│
├── 📁 assets/ # Ресурсы для обработки (CSS, изображения)
│ └── styles/
│
├── app.vue # Корневой компонент
├── nuxt.config.ts # Конфигурация Nuxt
└── package.json
Как они взаимодействуют:
app.vue → Layout → Page → Components
3. Установка Nuxt 3
Шаг 1: Создание проекта
npx nuxi init my-portfolio
cd my-portfolio
Шаг 2: Установка зависимостей
npm install
Шаг 3: Запуск dev-сервера
npm run dev
Откроется http://localhost:3000
Шаг 4: Установка дополнительных пакетов (для нашего проекта)
npm install @nuxt/image
Базовая настройка nuxt.config.ts:
export default defineNuxtConfig({
devtools: { enabled: true },
// Для статической генерации (важно для Netlify!)
ssr: true,
app: {
head: {
title: 'Моё Портфолио',
meta: [
{ charset: 'utf-8' },
{ name: 'viewport', content: 'width=device-width, initial-scale=1' },
{ name: 'description', content: 'Портфолио веб-разработчика' }
],
link: [
{ rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' }
]
}
},
modules: ['@nuxt/image'],
})
4. Работа с компонентами
Создание компонента components/Header.vue:
<template>
<header class="header">
<nav>
<NuxtLink to="/" class="logo">Моё Портфолио</NuxtLink>
<ul class="nav-links">
<li><NuxtLink to="/">Главная</NuxtLink></li>
<li><NuxtLink to="/about">Обо мне</NuxtLink></li>
<li><NuxtLink to="/projects">Проекты</NuxtLink></li>
<li><NuxtLink to="/contact">Контакты</NuxtLink></li>
</ul>
</nav>
</header>
</template>
<style scoped>
.header {
padding: 1rem 2rem;
background: #fff;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
nav {
display: flex;
justify-content: space-between;
align-items: center;
max-width: 1200px;
margin: 0 auto;
}
.logo {
font-size: 1.5rem;
font-weight: bold;
color: #2c3e50;
text-decoration: none;
}
.nav-links {
display: flex;
gap: 2rem;
list-style: none;
margin: 0;
padding: 0;
}
.nav-links a {
color: #42b983;
text-decoration: none;
transition: color 0.3s;
}
.nav-links a:hover,
.nav-links a.router-link-active {
color: #2c3e50;
}
</style>
Компонент с props components/ProjectCard.vue:
<template>
<div class="project-card">
<img :src="project.image" :alt="project.title" />
<h3>{{ project.title }}</h3>
<p>{{ project.description }}</p>
<div class="tags">
<span v-for="tag in project.tags" :key="tag" class="tag">
{{ tag }}
</span>
</div>
<NuxtLink :to="`/projects/${project.id}`" class="btn">
Подробнее
</NuxtLink>
</div>
</template>
<script setup>
// Определяем props с TypeScript
const props = defineProps({
project: {
type: Object,
required: true
}
})
</script>
<style scoped>
.project-card {
background: white;
border-radius: 8px;
padding: 1.5rem;
box-shadow: 0 2px 8px rgba(0,0,0,0.1);
transition: transform 0.3s;
}
.project-card:hover {
transform: translateY(-5px);
}
.project-card img {
width: 100%;
height: 200px;
object-fit: cover;
border-radius: 4px;
}
.tags {
display: flex;
gap: 0.5rem;
margin: 1rem 0;
}
.tag {
background: #e8f5e9;
color: #2e7d32;
padding: 0.25rem 0.75rem;
border-radius: 12px;
font-size: 0.875rem;
}
.btn {
display: inline-block;
background: #42b983;
color: white;
padding: 0.5rem 1rem;
border-radius: 4px;
text-decoration: none;
transition: background 0.3s;
}
.btn:hover {
background: #35a372;
}
</style>
Использование компонентов (автоимпорт!):
....
Похожие промпты
Mikhail
22.11.2025
Промпт для создания AI-агентов в CrewAI
Этот промпт предназначен для менторов, разработчиков и технических специалистов, стремящихся к эффективной автоматизации сложных рабочих …
Mikhail
04.02.2026
Golang ментор: промпт для обучения
Этот промпт Golang-разработчика, чтобы он мог выступать в роли ментора для начинающего разработчика. Ментор поможет …
Mikhail
30.01.2026
Промпт для vLLM: Backend-разработка
Этот промпт предназначен для backend-разработчиков, специализирующихся на развертывании моделей машинного обучения. Он поможет разработать и …
Mikhail
30.01.2026
Промпт для React интерфейса задач фронт
Этот промпт предназначен для frontend-разработчиков с опытом работы 2 года и поможет в создании интерактивного …
Mikhail
04.02.2026
Промпт: Spring Boot REST API
Этот промпт предназначен для backend-разработчиков, стремящихся освоить создание RESTful API с использованием Spring Framework. Он …
Mikhail
30.01.2026
Промпт для web develop: приложения управления проектами
Этот промпт предназначен для full-stack разработчиков и помогает создать детальный план разработки веб-приложения для управления …
Авторизуйтесь, чтобы оставить комментарий.
Нет комментариев.