+
+
+
+
+
diff --git a/docs/components/templates/Example.vue b/docs/components/templates/Example.vue
new file mode 100644
index 0000000000..a09688a513
--- /dev/null
+++ b/docs/components/templates/Example.vue
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/content/4.examples/0.essentials/hello-world.md b/docs/content/4.examples/0.essentials/hello-world.md
new file mode 100644
index 0000000000..243c63daf2
--- /dev/null
+++ b/docs/content/4.examples/0.essentials/hello-world.md
@@ -0,0 +1,13 @@
+---
+template: Example
+---
+
+# Hello world
+
+A minimal Nuxt 3 application only requires the `app.vue` and `nuxt.config.js` files.
+
+::alert{type=info icon=👉}
+Read more about [installation](/getting-started/installation).
+::
+
+::sandbox{repo="nuxt/framework" branch="main" dir="examples/essentials/hello-world" file="app.vue"}
diff --git a/docs/content/4.examples/1.app/error-handling.md b/docs/content/4.examples/1.app/error-handling.md
new file mode 100644
index 0000000000..8398220945
--- /dev/null
+++ b/docs/content/4.examples/1.app/error-handling.md
@@ -0,0 +1,13 @@
+---
+template: Example
+---
+
+# Error Handling
+
+This example shows how to handle errors in different contexts: pages, plugins, components and middleware.
+
+::alert{type=info icon=👉}
+Learn more about [error handling](/docs/usage/error-handling).
+::
+
+::sandbox{repo="nuxt/framework" branch="main" dir="examples/app/errors" file="app.vue"}
diff --git a/docs/content/4.examples/1.app/plugins.md b/docs/content/4.examples/1.app/plugins.md
new file mode 100644
index 0000000000..93fa2e938f
--- /dev/null
+++ b/docs/content/4.examples/1.app/plugins.md
@@ -0,0 +1,13 @@
+---
+template: Example
+---
+
+# Plugins
+
+This example shows how to use the `plugins/` directory to auto-register plugins.
+
+::alert{type=info icon=👉}
+Learn more about [plugins](/docs/directory-structure/plugins).
+::
+
+::sandbox{repo="nuxt/framework" branch="main" dir="examples/app/plugins" file="app.vue"}
diff --git a/docs/content/4.examples/2.auto-imports/components.md b/docs/content/4.examples/2.auto-imports/components.md
new file mode 100644
index 0000000000..43d7c9e811
--- /dev/null
+++ b/docs/content/4.examples/2.auto-imports/components.md
@@ -0,0 +1,14 @@
+---
+template: Example
+---
+
+# Components
+
+Components in the `components/` directory are auto imported and can be directly used in your templates.
+You can configure other directories to support components auto-imports.
+
+::alert{type=info icon=👉}
+Read more about [the components directory](/docs/directory-structure/components).
+::
+
+::sandbox{repo="nuxt/framework" branch="main" dir="examples/auto-imports/components" file="app.vue"}
diff --git a/docs/content/4.examples/2.auto-imports/composables.md b/docs/content/4.examples/2.auto-imports/composables.md
new file mode 100644
index 0000000000..7dfa050ecf
--- /dev/null
+++ b/docs/content/4.examples/2.auto-imports/composables.md
@@ -0,0 +1,14 @@
+---
+template: Example
+---
+
+# Composables
+
+This example shows how to use the `composables/` directory to auto import composables.
+If the component file provides a default export, the name of the composable will be mapped to the name of the file. Named exports can be used as-is.
+
+::alert{type=info icon=👉}
+Read more about [the composables directory](/docs/directory-structure/composables).
+::
+
+::sandbox{repo="nuxt/framework" branch="main" dir="examples/auto-imports/composables" file="app.vue"}
diff --git a/docs/content/4.examples/3.composables/use-async-data.md b/docs/content/4.examples/3.composables/use-async-data.md
new file mode 100644
index 0000000000..e5fe6becfa
--- /dev/null
+++ b/docs/content/4.examples/3.composables/use-async-data.md
@@ -0,0 +1,17 @@
+---
+template: Example
+---
+
+# useAsyncData
+
+This example shows how to use `useAsyncData` to fetch data from an API endpoint.
+
+::alert{type=info icon=💡}
+Nuxt will automatically read files in the ~/server/api directory to create API endpoints.
+::
+
+::alert{type=info icon=👉}
+Learn more about [data fetching](/docs/usage/data-fetching).
+::
+
+::sandbox{repo="nuxt/framework" branch="main" dir="examples/composables/use-async-data" file="app.vue"}
diff --git a/docs/content/4.examples/3.composables/use-cookie.md b/docs/content/4.examples/3.composables/use-cookie.md
new file mode 100644
index 0000000000..bd71e42421
--- /dev/null
+++ b/docs/content/4.examples/3.composables/use-cookie.md
@@ -0,0 +1,13 @@
+---
+template: Example
+---
+
+# useCookie
+
+This example shows how to use the `useCookie` API to persist small amounts of data that both client-side and server-side can use.
+
+::alert{type=info icon=👉}
+Learn more about [useCookie](/docs/usage/cookies).
+::
+
+::sandbox{repo="nuxt/framework" branch="main" dir="examples/composables/use-cookie" file="app.vue"}
diff --git a/docs/content/4.examples/3.composables/use-fetch.md b/docs/content/4.examples/3.composables/use-fetch.md
new file mode 100644
index 0000000000..05ab182db9
--- /dev/null
+++ b/docs/content/4.examples/3.composables/use-fetch.md
@@ -0,0 +1,17 @@
+---
+template: Example
+---
+
+# useFetch
+
+This example shows how to use `useFetch` to fetch data from an API endpoint.
+
+::alert{type=info icon=💡}
+Nuxt will automatically read files in the ~/server/api directory to create API endpoints.
+::
+
+::alert{type=info icon=👉}
+Learn more about [data fetching](/docs/usage/data-fetching).
+::
+
+::sandbox{repo="nuxt/framework" branch="main" dir="examples/composables/use-fetch" file="app.vue"}
diff --git a/docs/content/4.examples/3.composables/use-meta.md b/docs/content/4.examples/3.composables/use-meta.md
new file mode 100644
index 0000000000..b910efab73
--- /dev/null
+++ b/docs/content/4.examples/3.composables/use-meta.md
@@ -0,0 +1,13 @@
+---
+template: Example
+---
+
+# useMeta
+
+This example shows how to use `useMeta` and Nuxt built-in components to bind meta data to the head of the page.
+
+::alert{type=info icon=👉}
+Learn more about [meta tags](/docs/usage/meta-tags).
+::
+
+::sandbox{repo="nuxt/framework" branch="main" dir="examples/composables/use-meta" file="app.vue"}
diff --git a/docs/content/4.examples/3.composables/use-state.md b/docs/content/4.examples/3.composables/use-state.md
new file mode 100644
index 0000000000..524a2fe73a
--- /dev/null
+++ b/docs/content/4.examples/3.composables/use-state.md
@@ -0,0 +1,13 @@
+---
+template: Example
+---
+
+# useState
+
+`useState` is an SSR-friendly ref replacement. Its value will be preserved after server-side rendering and shared across all components using a unique key.
+
+::alert{type=info icon=👉}
+Learn more about [useState](/docs/usage/state).
+::
+
+::sandbox{repo="nuxt/framework" branch="main" dir="examples/composables/use-state" file="app.vue"}
diff --git a/docs/content/4.examples/4.routing/layouts.md b/docs/content/4.examples/4.routing/layouts.md
new file mode 100644
index 0000000000..309aba9486
--- /dev/null
+++ b/docs/content/4.examples/4.routing/layouts.md
@@ -0,0 +1,13 @@
+---
+template: Example
+---
+
+# Layouts
+
+This example shows how to define default and custom layouts.
+
+::alert{type=info icon=👉}
+Learn more about [layouts](/docs/directory-structure/layouts).
+::
+
+::sandbox{repo="nuxt/framework" branch="main" dir="examples/routing/layouts" file="pages/index.vue"}
diff --git a/docs/content/4.examples/4.routing/middleware.md b/docs/content/4.examples/4.routing/middleware.md
new file mode 100644
index 0000000000..a867f19c67
--- /dev/null
+++ b/docs/content/4.examples/4.routing/middleware.md
@@ -0,0 +1,13 @@
+---
+template: Example
+---
+
+# Middleware
+
+This example shows how to add route middleware with the middleware/ directory or with a plugin, and how to use them globally or per page.
+
+::alert{type=info icon=👉}
+Learn more about [middleware](/docs/directory-structure/middleware).
+::
+
+::sandbox{repo="nuxt/framework" branch="main" dir="examples/routing/middleware" file="app.vue"}
diff --git a/docs/content/4.examples/4.routing/nuxt-link.md b/docs/content/4.examples/4.routing/nuxt-link.md
new file mode 100644
index 0000000000..8be8cd7ae5
--- /dev/null
+++ b/docs/content/4.examples/4.routing/nuxt-link.md
@@ -0,0 +1,17 @@
+---
+template: Example
+---
+
+# NuxtLink
+
+This example shows different ways to use Nuxtlink.
+
+::alert{type=info icon=💡}
+`components/myNuxtLink.js` defines a custom NuxtLink.
+::
+
+::alert{type=info icon=👉}
+Learn more about [NuxtLink](/docs/usage/nuxt-link).
+::
+
+::sandbox{repo="nuxt/framework" branch="main" dir="examples/routing/nuxt-link" file="app.vue"}
diff --git a/docs/content/4.examples/4.routing/pages.md b/docs/content/4.examples/4.routing/pages.md
new file mode 100644
index 0000000000..96d3f63d89
--- /dev/null
+++ b/docs/content/4.examples/4.routing/pages.md
@@ -0,0 +1,13 @@
+---
+template: Example
+---
+
+# Pages
+
+This example shows how to use the `pages/` directory to create application routes.
+
+::alert{type=info icon=👉}
+Learn more about [pages](/docs/directory-structure/pages).
+::
+
+::sandbox{repo="nuxt/framework" branch="main" dir="examples/routing/pages" file="app.vue"}
diff --git a/docs/content/4.examples/4.routing/universal-router.md b/docs/content/4.examples/4.routing/universal-router.md
new file mode 100644
index 0000000000..f52df48370
--- /dev/null
+++ b/docs/content/4.examples/4.routing/universal-router.md
@@ -0,0 +1,9 @@
+---
+template: Example
+---
+
+# Universal Router
+
+This example demonstrates Nuxt universal routing utilities without depending on `pages/` and `vue-router`.
+
+::sandbox{repo="nuxt/framework" branch="main" dir="examples/routing/universal-router" file="app.vue"}
diff --git a/docs/content/4.examples/5.advanced/config-extends.md b/docs/content/4.examples/5.advanced/config-extends.md
new file mode 100644
index 0000000000..44e12bdfb7
--- /dev/null
+++ b/docs/content/4.examples/5.advanced/config-extends.md
@@ -0,0 +1,9 @@
+---
+template: Example
+---
+
+# Config extends
+
+This example shows how to use the `extends` key in nuxt.config.ts to use the base/ directory as a base Nuxt application, and use its components, composables or config and override them if necessary.
+
+::sandbox{repo="nuxt/framework" branch="main" dir="examples/advanced/config-extends" file="nuxt.config.ts"}
diff --git a/docs/content/4.examples/5.advanced/module-extend-pages.md b/docs/content/4.examples/5.advanced/module-extend-pages.md
new file mode 100644
index 0000000000..c34fd92af3
--- /dev/null
+++ b/docs/content/4.examples/5.advanced/module-extend-pages.md
@@ -0,0 +1,13 @@
+---
+template: Example
+---
+
+# Module Extend pages
+
+This example defines a new `test` page using `extendPages` within a module.
+
+::alert{type=info icon=👉}
+Learn more about [modules creation](/docs/advanced/modules).
+::
+
+::sandbox{repo="nuxt/framework" branch="main" dir="examples/advanced/module-extend-pages" file="pages/index.vue"}
diff --git a/docs/content/4.examples/5.advanced/test.md b/docs/content/4.examples/5.advanced/test.md
new file mode 100644
index 0000000000..fdf3078207
--- /dev/null
+++ b/docs/content/4.examples/5.advanced/test.md
@@ -0,0 +1,7 @@
+---
+template: Example
+---
+
+# Test
+
+::sandbox{repo="nuxt/framework" branch="main" dir="examples/advanced/test" file="app.vue"}
diff --git a/docs/content/4.examples/6.experimental/reactivity-transform.md b/docs/content/4.examples/6.experimental/reactivity-transform.md
new file mode 100644
index 0000000000..888b6c4f87
--- /dev/null
+++ b/docs/content/4.examples/6.experimental/reactivity-transform.md
@@ -0,0 +1,13 @@
+---
+template: Example
+---
+
+# Reactivity Transform
+
+This example demonstrates the support of Reactivity transform in Nuxt 3.
+
+::alert{type=info icon=👉}
+Learn more about [Reactivity transform](https://vuejs.org/guide/extras/reactivity-transform.html) on the Vue docs.
+::
+
+::sandbox{repo="nuxt/framework" branch="main" dir="examples/experimental/reactivity-transform" file="app.vue"}
diff --git a/docs/content/4.examples/6.experimental/wasm.md b/docs/content/4.examples/6.experimental/wasm.md
new file mode 100644
index 0000000000..6dd502905a
--- /dev/null
+++ b/docs/content/4.examples/6.experimental/wasm.md
@@ -0,0 +1,9 @@
+---
+template: Example
+---
+
+# Wasm
+
+This example demonstrates the server-side support of WebAssembly in Nuxt 3.
+
+::sandbox{repo="nuxt/framework" branch="main" dir="examples/experimental/wasm" file="app.vue"}
diff --git a/docs/content/4.examples/7.other/locale.md b/docs/content/4.examples/7.other/locale.md
new file mode 100644
index 0000000000..01c37c2dce
--- /dev/null
+++ b/docs/content/4.examples/7.other/locale.md
@@ -0,0 +1,13 @@
+---
+template: Example
+---
+
+# Locale
+
+This example shows how to define a locale composable to handle the application's locale, both server and client-side.
+
+::alert{type=info icon=💡}
+You can right click to "View Page Source" and see that Nuxt renders the correct date in SSR based on visitor's locale.
+::
+
+::sandbox{repo="nuxt/framework" branch="main" dir="examples/other/locale" file="app.vue"}
diff --git a/docs/content/4.examples/index.md b/docs/content/4.examples/index.md
new file mode 100644
index 0000000000..acf6d0c78a
--- /dev/null
+++ b/docs/content/4.examples/index.md
@@ -0,0 +1,9 @@
+---
+title: Examples
+layout.aside: true
+layout.fluid: true
+navigation:
+ exclusive: true
+ collapse: true
+ redirect: /examples/essentials/hello-world
+---
diff --git a/docs/content/4.community/1.getting-help.md b/docs/content/5.community/1.getting-help.md
similarity index 100%
rename from docs/content/4.community/1.getting-help.md
rename to docs/content/5.community/1.getting-help.md
diff --git a/docs/content/4.community/2.reporting-bugs.md b/docs/content/5.community/2.reporting-bugs.md
similarity index 100%
rename from docs/content/4.community/2.reporting-bugs.md
rename to docs/content/5.community/2.reporting-bugs.md
diff --git a/docs/content/4.community/3.contribution.md b/docs/content/5.community/3.contribution.md
similarity index 100%
rename from docs/content/4.community/3.contribution.md
rename to docs/content/5.community/3.contribution.md
diff --git a/docs/content/4.community/4.roadmap.md b/docs/content/5.community/4.roadmap.md
similarity index 100%
rename from docs/content/4.community/4.roadmap.md
rename to docs/content/5.community/4.roadmap.md
diff --git a/docs/content/4.community/index.md b/docs/content/5.community/index.md
similarity index 100%
rename from docs/content/4.community/index.md
rename to docs/content/5.community/index.md
diff --git a/docs/content/_collections/header.md b/docs/content/_collections/header.md
index ce34c8f6b1..69ad9598b0 100644
--- a/docs/content/_collections/header.md
+++ b/docs/content/_collections/header.md
@@ -9,6 +9,9 @@ links:
-
title: 'Docs'
to: '/docs/usage/data-fetching'
+ -
+ title: 'Examples'
+ to: '/examples/essentials/hello-world'
-
title: 'Community'
to: '/community/getting-help'
diff --git a/examples/README.md b/examples/README.md
index cd0f41be6b..025e64a94e 100644
--- a/examples/README.md
+++ b/examples/README.md
@@ -10,10 +10,10 @@
| `use-fetch` | [GitHub](https://github.com/nuxt/framework/tree/main/examples/use-fetch) | [Play Online](https://stackblitz.com/github/nuxt/framework/tree/main/examples/use-fetch?file=app.vue&terminal=dev) |
| `use-meta` | [GitHub](https://github.com/nuxt/framework/tree/main/examples/use-meta) | [Play Online](https://stackblitz.com/github/nuxt/framework/tree/main/examples/use-meta?file=app.vue&terminal=dev) |
| `use-state` | [GitHub](https://github.com/nuxt/framework/tree/main/examples/use-state) | [Play Online](https://stackblitz.com/github/nuxt/framework/tree/main/examples/use-state?file=app.vue&terminal=dev) |
-| `with-components` | [GitHub](https://github.com/nuxt/framework/tree/main/examples/with-components) | [Play Online](https://stackblitz.com/github/nuxt/framework/tree/main/examples/with-components?file=app.vue&terminal=dev) |
-| `with-composables` | [GitHub](https://github.com/nuxt/framework/tree/main/examples/with-composables) | [Play Online](https://stackblitz.com/github/nuxt/framework/tree/main/examples/with-composables?file=app.vue&terminal=dev) |
-| `with-layouts` | [GitHub](https://github.com/nuxt/framework/tree/main/examples/with-layouts) | [Play Online](https://stackblitz.com/github/nuxt/framework/tree/main/examples/with-layouts?file=app.vue&terminal=dev) |
-| `with-pages` | [GitHub](https://github.com/nuxt/framework/tree/main/examples/with-pages) | [Play Online](https://stackblitz.com/github/nuxt/framework/tree/main/examples/with-pages?file=app.vue&terminal=dev) |
-| `with-plugins` | [GitHub](https://github.com/nuxt/framework/tree/main/examples/with-plugins) | [Play Online](https://stackblitz.com/github/nuxt/framework/tree/main/examples/with-plugins?file=app.vue&terminal=dev) |
-| `with-universal-router` | [GitHub](https://github.com/nuxt/framework/tree/main/examples/with-universal-router) | [Play Online](https://stackblitz.com/github/nuxt/framework/tree/main/examples/with-universal-router?file=app.vue&terminal=dev) |
-| `with-wasm` | [GitHub](https://github.com/nuxt/framework/tree/main/examples/with-wasm) | [Play Online](https://stackblitz.com/github/nuxt/framework/tree/main/examples/with-wasm?file=app.vue&terminal=dev) |
+| `components` | [GitHub](https://github.com/nuxt/framework/tree/main/examples/components) | [Play Online](https://stackblitz.com/github/nuxt/framework/tree/main/examples/components?file=app.vue&terminal=dev) |
+| `composables` | [GitHub](https://github.com/nuxt/framework/tree/main/examples/composables) | [Play Online](https://stackblitz.com/github/nuxt/framework/tree/main/examples/composables?file=app.vue&terminal=dev) |
+| `layouts` | [GitHub](https://github.com/nuxt/framework/tree/main/examples/layouts) | [Play Online](https://stackblitz.com/github/nuxt/framework/tree/main/examples/layouts?file=app.vue&terminal=dev) |
+| `pages` | [GitHub](https://github.com/nuxt/framework/tree/main/examples/pages) | [Play Online](https://stackblitz.com/github/nuxt/framework/tree/main/examples/pages?file=app.vue&terminal=dev) |
+| `plugins` | [GitHub](https://github.com/nuxt/framework/tree/main/examples/plugins) | [Play Online](https://stackblitz.com/github/nuxt/framework/tree/main/examples/plugins?file=app.vue&terminal=dev) |
+| `universal-router` | [GitHub](https://github.com/nuxt/framework/tree/main/examples/universal-router) | [Play Online](https://stackblitz.com/github/nuxt/framework/tree/main/examples/universal-router?file=app.vue&terminal=dev) |
+| `wasm` | [GitHub](https://github.com/nuxt/framework/tree/main/examples/wasm) | [Play Online](https://stackblitz.com/github/nuxt/framework/tree/main/examples/wasm?file=app.vue&terminal=dev) |
diff --git a/examples/config-extends/base/components/BaseButton.vue b/examples/advanced/config-extends/base/components/BaseButton.vue
similarity index 100%
rename from examples/config-extends/base/components/BaseButton.vue
rename to examples/advanced/config-extends/base/components/BaseButton.vue
diff --git a/examples/config-extends/base/components/FancyButton.vue b/examples/advanced/config-extends/base/components/FancyButton.vue
similarity index 100%
rename from examples/config-extends/base/components/FancyButton.vue
rename to examples/advanced/config-extends/base/components/FancyButton.vue
diff --git a/examples/config-extends/base/composables/foo.ts b/examples/advanced/config-extends/base/composables/foo.ts
similarity index 100%
rename from examples/config-extends/base/composables/foo.ts
rename to examples/advanced/config-extends/base/composables/foo.ts
diff --git a/examples/config-extends/base/middleware/foo.ts b/examples/advanced/config-extends/base/middleware/foo.ts
similarity index 100%
rename from examples/config-extends/base/middleware/foo.ts
rename to examples/advanced/config-extends/base/middleware/foo.ts
diff --git a/examples/config-extends/base/nuxt.config.ts b/examples/advanced/config-extends/base/nuxt.config.ts
similarity index 100%
rename from examples/config-extends/base/nuxt.config.ts
rename to examples/advanced/config-extends/base/nuxt.config.ts
diff --git a/examples/config-extends/base/pages/foo.vue b/examples/advanced/config-extends/base/pages/foo.vue
similarity index 100%
rename from examples/config-extends/base/pages/foo.vue
rename to examples/advanced/config-extends/base/pages/foo.vue
diff --git a/examples/config-extends/base/plugins/my-plugin.ts b/examples/advanced/config-extends/base/plugins/my-plugin.ts
similarity index 100%
rename from examples/config-extends/base/plugins/my-plugin.ts
rename to examples/advanced/config-extends/base/plugins/my-plugin.ts
diff --git a/examples/config-extends/base/server/api/base.ts b/examples/advanced/config-extends/base/server/api/base.ts
similarity index 100%
rename from examples/config-extends/base/server/api/base.ts
rename to examples/advanced/config-extends/base/server/api/base.ts
diff --git a/examples/config-extends/base/utils/bar.ts b/examples/advanced/config-extends/base/utils/bar.ts
similarity index 100%
rename from examples/config-extends/base/utils/bar.ts
rename to examples/advanced/config-extends/base/utils/bar.ts
diff --git a/examples/config-extends/components/FancyButton.vue b/examples/advanced/config-extends/components/FancyButton.vue
similarity index 100%
rename from examples/config-extends/components/FancyButton.vue
rename to examples/advanced/config-extends/components/FancyButton.vue
diff --git a/examples/config-extends/nuxt.config.ts b/examples/advanced/config-extends/nuxt.config.ts
similarity index 100%
rename from examples/config-extends/nuxt.config.ts
rename to examples/advanced/config-extends/nuxt.config.ts
diff --git a/examples/config-extends/package.json b/examples/advanced/config-extends/package.json
similarity index 100%
rename from examples/config-extends/package.json
rename to examples/advanced/config-extends/package.json
diff --git a/examples/config-extends/pages/index.vue b/examples/advanced/config-extends/pages/index.vue
similarity index 57%
rename from examples/config-extends/pages/index.vue
rename to examples/advanced/config-extends/pages/index.vue
index 75814a417e..bea4876876 100644
--- a/examples/config-extends/pages/index.vue
+++ b/examples/advanced/config-extends/pages/index.vue
@@ -5,7 +5,7 @@ const bar = getBar()
-
+
theme runtimeConfig
{{ JSON.stringify(themeConfig, null, 2) }}
Base Button
@@ -15,11 +15,6 @@ const bar = getBar()
{{ foo }} {{ bar }}
{{ $myPlugin() }}
-
-
- This example shows how to use the extends key in nuxt.config.ts to use the base/ directory as a base Nuxt application, and use its components, composable or config and override them if necessary.
-
-
diff --git a/examples/config-extends/server/api/hello.ts b/examples/advanced/config-extends/server/api/hello.ts
similarity index 100%
rename from examples/config-extends/server/api/hello.ts
rename to examples/advanced/config-extends/server/api/hello.ts
diff --git a/examples/config-extends/tsconfig.json b/examples/advanced/config-extends/tsconfig.json
similarity index 100%
rename from examples/config-extends/tsconfig.json
rename to examples/advanced/config-extends/tsconfig.json
diff --git a/examples/config-extends/ui/components/Button.vue b/examples/advanced/config-extends/ui/components/Button.vue
similarity index 100%
rename from examples/config-extends/ui/components/Button.vue
rename to examples/advanced/config-extends/ui/components/Button.vue
diff --git a/examples/config-extends/ui/nuxt.config.ts b/examples/advanced/config-extends/ui/nuxt.config.ts
similarity index 100%
rename from examples/config-extends/ui/nuxt.config.ts
rename to examples/advanced/config-extends/ui/nuxt.config.ts
diff --git a/examples/advanced/module-extend-pages/layouts/default.vue b/examples/advanced/module-extend-pages/layouts/default.vue
new file mode 100644
index 0000000000..fec82618c2
--- /dev/null
+++ b/examples/advanced/module-extend-pages/layouts/default.vue
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/examples/module-extend-pages/modules/pages/index.ts b/examples/advanced/module-extend-pages/modules/pages/index.ts
similarity index 100%
rename from examples/module-extend-pages/modules/pages/index.ts
rename to examples/advanced/module-extend-pages/modules/pages/index.ts
diff --git a/examples/module-extend-pages/modules/pages/pages/test.vue b/examples/advanced/module-extend-pages/modules/pages/pages/test.vue
similarity index 100%
rename from examples/module-extend-pages/modules/pages/pages/test.vue
rename to examples/advanced/module-extend-pages/modules/pages/pages/test.vue
diff --git a/examples/module-extend-pages/nuxt.config.ts b/examples/advanced/module-extend-pages/nuxt.config.ts
similarity index 100%
rename from examples/module-extend-pages/nuxt.config.ts
rename to examples/advanced/module-extend-pages/nuxt.config.ts
diff --git a/examples/module-extend-pages/package.json b/examples/advanced/module-extend-pages/package.json
similarity index 100%
rename from examples/module-extend-pages/package.json
rename to examples/advanced/module-extend-pages/package.json
diff --git a/examples/module-extend-pages/pages/index.vue b/examples/advanced/module-extend-pages/pages/index.vue
similarity index 100%
rename from examples/module-extend-pages/pages/index.vue
rename to examples/advanced/module-extend-pages/pages/index.vue
diff --git a/examples/hello-world/tsconfig.json b/examples/advanced/module-extend-pages/tsconfig.json
similarity index 100%
rename from examples/hello-world/tsconfig.json
rename to examples/advanced/module-extend-pages/tsconfig.json
diff --git a/examples/with-test/app.vue b/examples/advanced/test/app.vue
similarity index 100%
rename from examples/with-test/app.vue
rename to examples/advanced/test/app.vue
diff --git a/examples/hello-world/nuxt.config.ts b/examples/advanced/test/nuxt.config.ts
similarity index 100%
rename from examples/hello-world/nuxt.config.ts
rename to examples/advanced/test/nuxt.config.ts
diff --git a/examples/with-test/package.json b/examples/advanced/test/package.json
similarity index 84%
rename from examples/with-test/package.json
rename to examples/advanced/test/package.json
index cb24fd9364..50a91c5b67 100644
--- a/examples/with-test/package.json
+++ b/examples/advanced/test/package.json
@@ -1,5 +1,5 @@
{
- "name": "example-with-test",
+ "name": "example-test",
"private": true,
"scripts": {
"build": "nuxi build",
diff --git a/examples/with-test/tests/basic.test.ts b/examples/advanced/test/tests/basic.test.ts
similarity index 100%
rename from examples/with-test/tests/basic.test.ts
rename to examples/advanced/test/tests/basic.test.ts
diff --git a/examples/locale/tsconfig.json b/examples/advanced/test/tsconfig.json
similarity index 100%
rename from examples/locale/tsconfig.json
rename to examples/advanced/test/tsconfig.json
diff --git a/examples/with-errors/app.vue b/examples/app/error-handling/app.vue
similarity index 76%
rename from examples/with-errors/app.vue
rename to examples/app/error-handling/app.vue
index c1b3b30102..37059cb4e3 100644
--- a/examples/with-errors/app.vue
+++ b/examples/app/error-handling/app.vue
@@ -15,7 +15,7 @@ function triggerError () {
-
+
-
-
-
This example shows how to handle errors in different contexts: pages, plugins, components and middleware.
- This demo showcases using the
-
- useCookie
-
- API to persist small amounts of data that can be used both client-side and server-side.
-
-
diff --git a/examples/use-fetch/nuxt.config.ts b/examples/composables/use-cookie/nuxt.config.ts
similarity index 100%
rename from examples/use-fetch/nuxt.config.ts
rename to examples/composables/use-cookie/nuxt.config.ts
diff --git a/examples/use-cookie/package.json b/examples/composables/use-cookie/package.json
similarity index 100%
rename from examples/use-cookie/package.json
rename to examples/composables/use-cookie/package.json
diff --git a/examples/use-fetch/tsconfig.json b/examples/composables/use-cookie/tsconfig.json
similarity index 100%
rename from examples/use-fetch/tsconfig.json
rename to examples/composables/use-cookie/tsconfig.json
diff --git a/examples/composables/use-fetch/app.vue b/examples/composables/use-fetch/app.vue
new file mode 100644
index 0000000000..60645e1de1
--- /dev/null
+++ b/examples/composables/use-fetch/app.vue
@@ -0,0 +1,16 @@
+
+
+
+
+
+ Fetch result:
+
{{ data }}
+
+ +
+
+
+
+
diff --git a/examples/use-meta/nuxt.config.ts b/examples/composables/use-fetch/nuxt.config.ts
similarity index 100%
rename from examples/use-meta/nuxt.config.ts
rename to examples/composables/use-fetch/nuxt.config.ts
diff --git a/examples/use-fetch/package.json b/examples/composables/use-fetch/package.json
similarity index 100%
rename from examples/use-fetch/package.json
rename to examples/composables/use-fetch/package.json
diff --git a/examples/use-fetch/server/api/hello.ts b/examples/composables/use-fetch/server/api/hello.ts
similarity index 100%
rename from examples/use-fetch/server/api/hello.ts
rename to examples/composables/use-fetch/server/api/hello.ts
diff --git a/examples/use-meta/tsconfig.json b/examples/composables/use-fetch/tsconfig.json
similarity index 100%
rename from examples/use-meta/tsconfig.json
rename to examples/composables/use-fetch/tsconfig.json
diff --git a/examples/use-meta/app.vue b/examples/composables/use-meta/app.vue
similarity index 64%
rename from examples/use-meta/app.vue
rename to examples/composables/use-meta/app.vue
index 7590d28092..210c0289b0 100644
--- a/examples/use-meta/app.vue
+++ b/examples/composables/use-meta/app.vue
@@ -1,5 +1,5 @@
-
+
@@ -20,21 +20,6 @@
Click me and see the dynamic title
-
-
-
-
- This example shows how to use useMeta and Nuxt built-in components to bind meta data to the head of the page.
-
-
- Learn more about
-
- Meta tags
- .
- Open in editor to see the source code 👉
-
-
-
diff --git a/examples/use-state/nuxt.config.ts b/examples/composables/use-meta/nuxt.config.ts
similarity index 100%
rename from examples/use-state/nuxt.config.ts
rename to examples/composables/use-meta/nuxt.config.ts
diff --git a/examples/use-meta/package.json b/examples/composables/use-meta/package.json
similarity index 100%
rename from examples/use-meta/package.json
rename to examples/composables/use-meta/package.json
diff --git a/examples/with-components/tsconfig.json b/examples/composables/use-meta/tsconfig.json
similarity index 100%
rename from examples/with-components/tsconfig.json
rename to examples/composables/use-meta/tsconfig.json
diff --git a/examples/composables/use-state/app.vue b/examples/composables/use-state/app.vue
new file mode 100644
index 0000000000..450f6cf6e0
--- /dev/null
+++ b/examples/composables/use-state/app.vue
@@ -0,0 +1,17 @@
+
+
+
+
+
Counter: {{ counter }}
+
+
+ +
+
+
+ -
+
+
+
+
diff --git a/examples/with-composables/nuxt.config.ts b/examples/composables/use-state/nuxt.config.ts
similarity index 100%
rename from examples/with-composables/nuxt.config.ts
rename to examples/composables/use-state/nuxt.config.ts
diff --git a/examples/use-state/package.json b/examples/composables/use-state/package.json
similarity index 100%
rename from examples/use-state/package.json
rename to examples/composables/use-state/package.json
diff --git a/examples/use-state/tsconfig.json b/examples/composables/use-state/tsconfig.json
similarity index 100%
rename from examples/use-state/tsconfig.json
rename to examples/composables/use-state/tsconfig.json
diff --git a/examples/hello-world/app.vue b/examples/essentials/hello-world/app.vue
similarity index 100%
rename from examples/hello-world/app.vue
rename to examples/essentials/hello-world/app.vue
diff --git a/examples/with-test/nuxt.config.ts b/examples/essentials/hello-world/nuxt.config.ts
similarity index 100%
rename from examples/with-test/nuxt.config.ts
rename to examples/essentials/hello-world/nuxt.config.ts
diff --git a/examples/hello-world/package.json b/examples/essentials/hello-world/package.json
similarity index 100%
rename from examples/hello-world/package.json
rename to examples/essentials/hello-world/package.json
diff --git a/examples/with-errors/tsconfig.json b/examples/essentials/hello-world/tsconfig.json
similarity index 100%
rename from examples/with-errors/tsconfig.json
rename to examples/essentials/hello-world/tsconfig.json
diff --git a/examples/experimental/reactivity-transform/app.vue b/examples/experimental/reactivity-transform/app.vue
new file mode 100644
index 0000000000..3a0e100125
--- /dev/null
+++ b/examples/experimental/reactivity-transform/app.vue
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+ Inc
+
+
+ Dec
+
+
+
+
+
diff --git a/examples/with-reactivity-transform/components/label.vue b/examples/experimental/reactivity-transform/components/label.vue
similarity index 100%
rename from examples/with-reactivity-transform/components/label.vue
rename to examples/experimental/reactivity-transform/components/label.vue
diff --git a/examples/with-reactivity-transform/nuxt.config.ts b/examples/experimental/reactivity-transform/nuxt.config.ts
similarity index 100%
rename from examples/with-reactivity-transform/nuxt.config.ts
rename to examples/experimental/reactivity-transform/nuxt.config.ts
diff --git a/examples/with-composables/package.json b/examples/experimental/reactivity-transform/package.json
similarity index 83%
rename from examples/with-composables/package.json
rename to examples/experimental/reactivity-transform/package.json
index 666b5ab0e0..ea8e4cb6af 100644
--- a/examples/with-composables/package.json
+++ b/examples/experimental/reactivity-transform/package.json
@@ -1,5 +1,5 @@
{
- "name": "example-with-composables",
+ "name": "example-reactivity-transform",
"private": true,
"scripts": {
"build": "nuxi build",
diff --git a/examples/with-layouts/tsconfig.json b/examples/experimental/reactivity-transform/tsconfig.json
similarity index 100%
rename from examples/with-layouts/tsconfig.json
rename to examples/experimental/reactivity-transform/tsconfig.json
diff --git a/examples/with-wasm/app.vue b/examples/experimental/wasm/app.vue
similarity index 69%
rename from examples/with-wasm/app.vue
rename to examples/experimental/wasm/app.vue
index 7320d8c66e..cabccf8fca 100644
--- a/examples/with-wasm/app.vue
+++ b/examples/experimental/wasm/app.vue
@@ -8,7 +8,7 @@ const { data } = await useAsyncData('sum',
-
+
a = 100
@@ -20,11 +20,5 @@ const { data } = await useAsyncData('sum',
{{ a }} + {{ b }} = {{ data.sum }}
-
-
-
- This example demonstrates the server-side support of WebAssembly in Nuxt 3.
-
-
diff --git a/examples/with-wasm/nuxt.config.ts b/examples/experimental/wasm/nuxt.config.ts
similarity index 100%
rename from examples/with-wasm/nuxt.config.ts
rename to examples/experimental/wasm/nuxt.config.ts
diff --git a/examples/with-layouts/package.json b/examples/experimental/wasm/package.json
similarity index 86%
rename from examples/with-layouts/package.json
rename to examples/experimental/wasm/package.json
index 4bd41fa546..c398eb875b 100644
--- a/examples/with-layouts/package.json
+++ b/examples/experimental/wasm/package.json
@@ -1,13 +1,13 @@
{
- "name": "example-with-layouts",
+ "name": "example-wasm",
"private": true,
- "scripts": {
- "build": "nuxi build",
- "dev": "nuxi dev",
- "start": "nuxi preview"
- },
"devDependencies": {
"@nuxt/ui": "npm:@nuxt/ui-edge@latest",
"nuxt3": "latest"
+ },
+ "scripts": {
+ "dev": "nuxi dev",
+ "build": "nuxi build",
+ "start": "nuxi preview"
}
}
diff --git a/examples/with-wasm/server/api/sum.ts b/examples/experimental/wasm/server/api/sum.ts
similarity index 100%
rename from examples/with-wasm/server/api/sum.ts
rename to examples/experimental/wasm/server/api/sum.ts
diff --git a/examples/with-wasm/server/wasm/sum.wasm b/examples/experimental/wasm/server/wasm/sum.wasm
similarity index 100%
rename from examples/with-wasm/server/wasm/sum.wasm
rename to examples/experimental/wasm/server/wasm/sum.wasm
diff --git a/examples/with-wasm/server/wasm/sum.wat b/examples/experimental/wasm/server/wasm/sum.wat
similarity index 100%
rename from examples/with-wasm/server/wasm/sum.wat
rename to examples/experimental/wasm/server/wasm/sum.wat
diff --git a/examples/with-middleware/tsconfig.json b/examples/experimental/wasm/tsconfig.json
similarity index 100%
rename from examples/with-middleware/tsconfig.json
rename to examples/experimental/wasm/tsconfig.json
diff --git a/examples/module-extend-pages/layouts/default.vue b/examples/module-extend-pages/layouts/default.vue
deleted file mode 100644
index fc8a25bd56..0000000000
--- a/examples/module-extend-pages/layouts/default.vue
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- This example defines a new test page using extendPages within a module.
-
-
- useState
-
- is an SSR-friendly ref replacement.
- Its value will be preserved after server-side rendering
- and shared across all components using a unique key.
-