Web Development · MBC-30

Nuxt Basic for Beginners

Nuxt Basic for Beginners is a course in the fundamentals of Nuxt 4, the Vue.js framework, covering rendering modes, file-based routing, layouts, modules, server API routes, data fetching, error handling and SEO. It suits web developers and students who already write Vue.js, and you leave able to deploy a Nuxt website to production.

Updated
From 5,850 THB / person 6,500 −10% excl. VAT 7% · group rates available
PDFDownload the course outline
  • Duration12 hours · 2 days
  • FormatOnsite / live online
  • Next roundOn request
  • CertificateIncluded

Course overview

Nuxt is a framework built on Vue.js that renders pages on the server, so sites load quickly and suit SEO-driven work such as company sites, blogs and online stores. Nuxt provides the structure most projects need, including file-based routing, auto imports, a module system and server APIs in one project, so teams can start quickly without configuring everything themselves.

This course teaches current Nuxt 4 to people who already write Vue.js. It starts with project structure and rendering modes, then covers routing, layouts, components, middleware and state. Learners then use modules, write basic server APIs, fetch data, handle errors, add SEO and finish by building and deploying a site to production. (2 days, 6 hours per day, 12 hours in total, Beginner level.)

What you’ll gain

  • Create and structure a Nuxt 4 project correctly
  • Explain how SSR, SSG, CSR and hybrid rendering differ and choose between them
  • Build file-based routes, layouts, components and route middleware
  • Use Nuxt modules and write basic server APIs in Nuxt
  • Fetch data with useFetch, useAsyncData and $fetch and handle errors
  • Build and deploy a Nuxt project to production

Who this course is for

  • People who want to build fast, SEO-friendly websites with Nuxt
  • Vue developers moving from single-page apps to SSR and full-stack work
  • Frontend developers maintaining Nuxt 3 projects who need to understand Nuxt 4
  • Students and other learners with basic Vue.js

Prerequisites

  • Basic HTML and CSS
  • JavaScript, including arrays, objects, modules, async and await
  • Some Vue.js experience, such as components, props and ref
  • A laptop that can run the Node.js LTS release and VS Code

Curriculum

Course Details

This course is the 2026 edition of Nuxt 3 Basic for Beginners. It runs for 2 days, 6 hours per day (12 hours in total, 09:00-16:00), as lectures with labs. Beginner level. Because Nuxt 3 has reached end of life, this edition moves to Nuxt 4, which keeps app code in the app directory. It keeps the original core of rendering modes, file-based

routing, layouts, components, NuxtLink, modules, server APIs, data fetching, error handling and deployment, and adds route middleware, shared state with useState and SEO with useSeoMeta. The course is for people who already write Vue, unlike Basic Vue and Nuxt with Prisma and Supabase, which teaches Vue from the start together with a database. Learners take home a lab guide and the source code of a blog site.

Day 1 Nuxt 4 Structure, Rendering and Routing

Section 1: Lab: Introducing Nuxt 4 and Creating a Project

  • What Nuxt is and how it differs from Vue with Vite
  • Create a project with npm create nuxt and use Nuxt CLI commands
  • The app, server, shared and public directories
  • Configure nuxt.config.ts and explore the app with Nuxt DevTools
  • Lab: a first Nuxt project running on your own machine

Section 2: Rendering Modes in Nuxt

  • How CSR, SSR, SSG and hybrid rendering differ
  • What hydration is, and code that only runs in the browser
  • Use ClientOnly and onMounted when needed
  • Lab: compare the page source of SSR and CSR pages

Section 3: Lab: File-Based Routing

  • Create pages in the pages directory and an index.vue home page
  • Dynamic routes such as [id].vue and reading values with useRoute
  • Nested routes with NuxtPage and catch-all routes
  • Lab: a blog with a list page and detail pages

Section 4: Layouts, Components and Pages

  • app.vue and the default layout in the layouts directory
  • Choose a layout per page with definePageMeta
  • Component auto imports, directory-based naming and lazy components
  • Lab: a header, footer and members' layout

Section 5: NuxtLink, Navigation and Middleware

  • Link pages with NuxtLink and automatic prefetching
  • Navigate from code with navigateTo
  • Inline, named and global route middleware
  • Lab: middleware that guards pages requiring login

Section 6: Lab: State and Composables

  • useState for shared, SSR-safe state
  • Write auto-imported composables and utilities
  • runtimeConfig and app.config for configuration
  • Lab: a shopping cart shared across every page
Day 2 Modules, Server APIs, Data and Deployment

Section 7: Lab: Using Nuxt Modules

  • Find and install modules with npx nuxt module add
  • Nuxt UI with Tailwind CSS for building screens quickly
  • Nuxt Image and the NuxtImg component for images
  • Lab: restyle the blog with Nuxt UI and automatically resized images

Section 8: Lab: Writing Basic Server APIs

  • Create APIs in server/api with defineEventHandler
  • Split handlers by HTTP method with .get.ts and .post.ts files
  • Read the query, route parameters and request body
  • Store temporary data with Nitro storage
  • Lab: a blog API that can add and read posts

Section 9: Lab: Reading Data from APIs

  • How useFetch, useAsyncData and $fetch are used differently
  • Fetch data during SSR without fetching again on the client
  • status, error, refresh and refetching when values change
  • Lab: a searchable post list with loading states

Section 10: Error Handling in Nuxt

  • Throw errors with createError in pages and on the server
  • A global error page with error.vue and clearError
  • showError and NuxtErrorBoundary for errors in part of a page
  • Lab: a 404 page and error messages users can understand

Section 11: SEO and Meta Tags

  • Set the title and description with useSeoMeta and useHead
  • Open Graph tags for sharing links on social media
  • Prerender pages that rarely change with routeRules
  • Lab: post meta tags that follow the content

Section 12: Workshop: Build and Deploy

  • How nuxt build and nuxt generate differ
  • Environment variables and runtimeConfig in production
  • Deploy to Vercel or Netlify through GitHub
  • Workshop: a complete blog site running in the cloud

Schedule & training options

For individuals — public rounds

No public rounds are open right now. Join the waiting list and we will contact you first when the next round opens, or ask us on LINE. Or call 02-570-8449 or 088-807-9770

For organisations — in-house / private

  • Tailor the content to your team’s tools and projects
  • Your dates, at your office or live online
  • Quotation with tax ID for procurement
Corporate training quote

Instructors

Frequently asked questions

What rendering modes does Nuxt offer, and how do they differ?

Nuxt renders on the server (SSR) by default, so the browser and search engines first receive complete HTML, which is then hydrated to become interactive. You can also prerender pages as static files (SSG), render only on the client (CSR) or mix modes in one app (hybrid rendering) by setting routeRules per route, for example prerendering the home page and rendering a dashboard on the client.

How does file-based routing work in Nuxt?

Nuxt builds routes automatically from files in the pages directory, so pages/about.vue becomes /about, and a file with square brackets such as pages/posts/[id].vue is a dynamic route whose value you read with useRoute. In Nuxt 4 the pages directory sits inside the app directory, and NuxtLink links pages and prefetches the next page for you, so you do not write router configuration yourself.

How do you write an API and fetch data in Nuxt?

Create a file in server/api that exports a defineEventHandler returning your data, and Nuxt creates an endpoint from the file name, so server/api/posts.get.ts becomes GET /api/posts. In a page, use useFetch to load the data, which works during SSR and on the client without fetching twice and returns data, status and error for the template. For user actions such as submitting a form, use $fetch.

How is Nuxt 4 different from Nuxt 3?

Nuxt 3 reached end of life on 31 July 2026 and no longer receives security fixes. Nuxt 4 moves app code into the app directory, adds a shared directory for code used by both app and server, and adjusts data fetching, for example data from useFetch is a shallowRef by default. Core ideas such as routing, layouts and server APIs stay the same, and the course includes a comparison table for migrating existing projects.

Who is the Nuxt Basic for Beginners course for, and what should I know beforehand?

It suits people who want fast, SEO-friendly websites, Vue developers moving from single-page apps to SSR, frontend developers maintaining Nuxt 3 projects and interested students. You should know basic HTML, CSS and JavaScript and have written some Vue.js. If you have never used Vue, choose Basic Vue and Nuxt with Prisma and Supabase instead.

What can I do after completing Nuxt Basic for Beginners?

You can build a Nuxt 4 site from scratch to production: structure the project, choose the right rendering mode for each page, set up routing, layouts and middleware, write basic server APIs, fetch data and handle errors, set SEO meta tags and deploy to the cloud. You are also ready for Nuxt Advanced, which goes deeper into databases, authentication and multilingual sites.