[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"navigation_en":3,"/docs/tutorials/page-routes-data":144},[4,16,91,117,127],{"title":5,"path":6,"stem":7,"children":8,"icon":15},"Getting Started","/docs/get-started","docs/1.get-started/1.index",[9,11],{"title":10,"path":6,"stem":7},"Introduction",{"title":12,"path":13,"stem":14},"Setup","/docs/get-started/setup","docs/1.get-started/2.setup","mage:fast-forward-fill",{"title":17,"icon":18,"path":19,"stem":20,"children":21,"page":90},"Features","ic:baseline-cable","/docs/features","docs/2.features",[22,26,30,34,38,42,46,50,54,58,62,66,70,74,78,82,86],{"title":23,"path":24,"stem":25},"Database","/docs/features/database","docs/2.features/01.database",{"title":27,"path":28,"stem":29},"Authentication","/docs/features/auth","docs/2.features/02.auth",{"title":31,"path":32,"stem":33},"Payments","/docs/features/payments","docs/2.features/03.payments",{"title":35,"path":36,"stem":37},"Admin Panel","/docs/features/admin-panel","docs/2.features/04.admin-panel",{"title":39,"path":40,"stem":41},"AI","/docs/features/ai","docs/2.features/05.ai",{"title":43,"path":44,"stem":45},"Customization","/docs/features/customization","docs/2.features/06.customization",{"title":47,"path":48,"stem":49},"Storage","/docs/features/storage","docs/2.features/07.storage",{"title":51,"path":52,"stem":53},"Email","/docs/features/email","docs/2.features/08.email",{"title":55,"path":56,"stem":57},"Languages","/docs/features/languages","docs/2.features/09.languages",{"title":59,"path":60,"stem":61},"SEO","/docs/features/seo","docs/2.features/10.seo",{"title":63,"path":64,"stem":65},"Blogs","/docs/features/blogs","docs/2.features/11.blogs",{"title":67,"path":68,"stem":69},"Documentation","/docs/features/documentation","docs/2.features/12.documentation",{"title":71,"path":72,"stem":73},"Cron Jobs","/docs/features/cron-jobs","docs/2.features/13.cron-jobs",{"title":75,"path":76,"stem":77},"Error Handling","/docs/features/error-handling","docs/2.features/14.error-handling",{"title":79,"path":80,"stem":81},"Analytics","/docs/features/analytics","docs/2.features/15.analytics",{"title":83,"path":84,"stem":85},"PWA","/docs/features/pwa","docs/2.features/15.pwa",{"title":87,"path":88,"stem":89},"Customer Support","/docs/features/customer-support","docs/2.features/16.customer-support",false,{"title":92,"icon":93,"path":94,"stem":95,"children":96,"page":90},"Tutorials","ic:baseline-library-books","/docs/tutorials","docs/3.tutorials",[97,101,105,109,113],{"title":98,"path":99,"stem":100},"Project Structure","/docs/tutorials/project-structure","docs/3.tutorials/1.project-structure",{"title":102,"path":103,"stem":104},"Page Routes","/docs/tutorials/page-routes","docs/3.tutorials/2.page-routes",{"title":106,"path":107,"stem":108},"API Calls","/docs/tutorials/api-calls","docs/3.tutorials/3.api-calls",{"title":110,"path":111,"stem":112},"State Management","/docs/tutorials/state-management","docs/3.tutorials/4.state-management",{"title":114,"path":115,"stem":116},"Legal Pages by GPT","/docs/tutorials/legal-pages-by-gpt","docs/3.tutorials/5.legal-pages-by-gpt",{"title":118,"icon":119,"path":120,"stem":121,"children":122,"page":90},"Formatting & Linting","ic:baseline-format-align-left","/docs/formatting-and-linting","docs/4.formatting-and-linting",[123],{"title":124,"path":125,"stem":126},"Overview","/docs/formatting-and-linting/overview","docs/4.formatting-and-linting/1.overview",{"title":128,"icon":129,"path":130,"stem":131,"children":132,"page":90},"Deployment","ic:baseline-rocket-launch","/docs/deployment","docs/5.deployment",[133,136,140],{"title":124,"path":134,"stem":135},"/docs/deployment/overview","docs/5.deployment/1.overview",{"title":137,"path":138,"stem":139},"Vercel","/docs/deployment/vercel","docs/5.deployment/2.vercel",{"title":141,"path":142,"stem":143},"Cloudflare Workers","/docs/deployment/cloudflare","docs/5.deployment/3.cloudflare",{"page":145,"surround":366},{"id":146,"title":102,"body":147,"description":358,"extension":359,"head":360,"meta":361,"navigation":362,"ogImage":360,"path":103,"robots":360,"schemaOrg":360,"seo":363,"sitemap":364,"stem":104,"__hash__":365},"docs_en/docs/3.tutorials/2.page-routes.md",{"type":148,"value":149,"toc":353},"minimark",[150,154,167,264,268],[151,152,12],"h2",{"id":153},"setup",[155,156,157,158,162,163,166],"p",{},"Nuxt automatically generates routes from files in the ",[159,160,161],"code",{},"app/pages/"," directory. You only need to customize routing when using ",[159,164,165],{},"definePageMeta",".",[168,169,170,208,235],"ol",{},[171,172,173,177],"li",{},[174,175,176],"strong",{},"Add a page",[178,179,180],"ul",{},[171,181,182,183,186,187,189,190,193,194,197,198],{},"Create a ",[159,184,185],{},".vue"," file in ",[159,188,161],{}," (example: ",[159,191,192],{},"app/pages/about.vue"," creates ",[159,195,196],{},"/about",").\n",[199,200,206],"pre",{"className":201,"code":203,"filename":192,"language":204,"meta":205},[202],"language-text","\u003Ctemplate>\n  \u003Cdiv>About ShipAhead\u003C/div>\n\u003C/template>\n","text","",[159,207,203],{"__ignoreMap":205},[171,209,210,213,214],{},[174,211,212],{},"Dynamic Routes",":",[178,215,216,226],{},[171,217,218,219,193,222,225],{},"Use square brackets for parameters (e.g., ",[159,220,221],{},"app/pages/blogs/[slug].vue",[159,223,224],{},"/blogs/my-post",").",[171,227,228,229],{},"Example:\n",[199,230,233],{"className":231,"code":232,"filename":221,"language":204,"meta":205},[202],"\u003Ctemplate>\n  \u003Cdiv>Blog: {{ useRoute().params.slug }}\u003C/div>\n\u003C/template>\n",[159,234,232],{"__ignoreMap":205},[171,236,237,213,240],{},[174,238,239],{},"Nested Routes",[178,241,242,254],{},[171,243,244,245,189,248,193,251,225],{},"Use folders with ",[159,246,247],{},"index.vue",[159,249,250],{},"app/pages/dashboard/index.vue",[159,252,253],{},"/dashboard",[171,255,256,257,260,261,225],{},"Add child routes in the same folder (example: ",[159,258,259],{},"app/pages/dashboard/settings.vue ","→ ",[159,262,263],{},"/dashboard/settings",[151,265,267],{"id":266},"usage","Usage",[178,269,270,282,315,328,341],{},[171,271,272,275,276,278,279,281],{},[174,273,274],{},"Basic Routing",": Add ",[159,277,185],{}," files to ",[159,280,161],{}," to create pages automatically.",[171,283,284,287,288,290,291,298],{},[174,285,286],{},"Customizing Pages",": Use ",[159,289,165],{}," to set a layout or middleware:",[199,292,296],{"className":293,"code":294,"filename":295,"language":204,"meta":205},[202],"definePageMeta({\n  layout: 'admin',\n  requireAuth: true,\n});\n","app/pages/admin/index.vue",[159,297,294],{"__ignoreMap":205},[178,299,300,309],{},[171,301,302,305,306,166],{},[159,303,304],{},"layout: 'admin'",": Applies the admin layout from ",[159,307,308],{},"layouts/admin.vue",[171,310,311,314],{},[159,312,313],{},"requireAuth: true",": Restricts access to authenticated users, defined in ShipAhead’s middleware.",[171,316,317,320,321,324,325,166],{},[174,318,319],{},"Dynamic Parameters",": Access values like ",[159,322,323],{},"slug"," using ",[159,326,327],{},"useRoute()",[171,329,330,333,334,337,338,225],{},[174,331,332],{},"Verify Routes",": Run ",[159,335,336],{},"npm run dev"," and navigating to URL (e.g., ",[159,339,340],{},"http://localhost:3000/about",[171,342,343,346,347,166],{},[174,344,345],{},"Learn More",": See Nuxt routing docs at ",[348,349,352],"a",{"href":350,"target":351},"https://nuxt.com/docs/guide/directory-structure/pages","_blank","Nuxt Pages Documentation",{"title":205,"searchDepth":354,"depth":354,"links":355},2,[356,357],{"id":153,"depth":354,"text":12},{"id":266,"depth":354,"text":267},"Learn how to create and manage pages in your app using Nuxt file based routing.","md",null,{},true,{"title":102,"description":358},{"loc":103},"pnl6M4RUht31gR0KQR-w1o7VfOYa_g4hFWEBb8I4DN8",[367,369],{"title":98,"path":99,"stem":100,"description":368,"children":-1},"Understand the folder structure of Nuxt project to navigate and customize your application.",{"title":106,"path":107,"stem":108,"description":370,"children":-1},"Learn how to make and manage API calls in your app efficiently, connecting your app to external services with ease."]