news 2026/6/13 22:00:58

第八阶段:工程化、质量管控与高级拓展(139天), Nuxt.js3核心:目录路由+服务端请求+状态管理(Pinia)+ 中间件

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
第八阶段:工程化、质量管控与高级拓展(139天), Nuxt.js3核心:目录路由+服务端请求+状态管理(Pinia)+ 中间件

Nuxt.js 3 核心功能详解

一、目录路由系统

基于文件系统的自动路由生成机制:

  1. 基础规则

    • /pages/index.vue→ 根路由/
    • /pages/user/index.vue/user
    • /pages/user/[id].vue→ 动态路由/user/:id
  2. 嵌套路由
    创建同名目录包裹组件:

    pages/ └── parent/ ├── index.vue # /parent └── child.vue # /parent/child
  3. 高级配置
    使用definePageMeta定制路由:

    <script setup> definePageMeta({ layout: "admin", // 指定布局 middleware: "auth" // 路由守卫 }) </script>

二、服务端请求处理

支持全栈开发模式:

  1. API路由
    server/api目录创建接口:

    // server/api/user.get.ts export default defineEventHandler(async (event) => { const { id } = getQuery(event) return await fetchUserFromDB(id) // 数据库操作 })
  2. 数据获取方法

    • 组件内:useAsyncData+$fetch
      <script setup> const { data } = await useAsyncData('users', () => $fetch('/api/users') ) </script>
    • 服务端:useFetch(自动识别运行环境)
      // 在setup或生命周期钩子中使用 const { data } = useFetch('/api/products')

三、状态管理(Pinia集成)

替代Vuex的轻量级方案:

  1. 创建Store

    // stores/counter.ts export const useCounterStore = defineStore('counter', { state: () => ({ count: 0 }), actions: { increment() { this.count++ } } })
  2. 组件中使用

    <script setup> const counter = useCounterStore() </script> <template> <button @click="counter.increment"> 点击次数: {{ counter.count }} </button> </template>
  3. 服务端支持
    通过useState实现SSR友好状态:

    const globalData = useState('data', () => ({ value: 1 }))

四、中间件机制

路由守卫和逻辑复用层:

  1. 创建中间件

    // middleware/auth.ts export default defineNuxtRouteMiddleware((to) => { const auth = useAuthStore() if (!auth.isLoggedIn) { return navigateTo('/login') } })
  2. 应用场景

    类型作用使用位置
    路由守卫权限验证/重定向页面/布局的definePageMeta
    服务端中间件请求预处理(如设置HTTP头)server/middleware目录
    插件中间件应用初始化逻辑plugins目录
  3. 执行顺序

    graph LR 全局中间件-->布局中间件-->页面中间件

最佳实践:结合Nuxt 3的useRuntimeConfig管理环境变量,使用<NuxtLink>组件实现智能路由预加载,通过nuxi build生成优化产物。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/13 21:58:55

这次终于选对了!AI论文软件测评:2026年最值得用的几款推荐

2026年真正好用的AI论文软件&#xff0c;核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测&#xff0c;千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队&#xff0c;覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

作者头像 李华
网站建设 2026/6/13 21:56:54

PX4-Autopilot多机协同控制:从分布式智能到集群自主的深度探索

PX4-Autopilot多机协同控制&#xff1a;从分布式智能到集群自主的深度探索 【免费下载链接】PX4-Autopilot PX4 Autopilot Software 项目地址: https://gitcode.com/gh_mirrors/px/PX4-Autopilot 在无人机技术飞速发展的今天&#xff0c;单个无人机的应用已难以满足复杂…

作者头像 李华
网站建设 2026/6/13 21:51:55

[现代C++] 右值引用:从原理到工程落地,告别无效拷贝

前言 很多 C 开发者都会有一个疑惑&#xff1a;为什么 C11 要凭空多出「右值引用 &&」这个语法&#xff1f; 初学的时候&#xff0c;我们觉得它只是一个晦涩的语法糖&#xff0c;平时写业务代码很少手动写 &&&#xff0c;好像写不写都无所谓。 但真正做高性…

作者头像 李华
网站建设 2026/6/13 21:51:54

第 16 集:Claude Code 记忆持久化 —— 跨会话状态管理

核心内容:让 AI 记住该记住的,忘记该忘记的 前面我们学习了上下文工程学,知道如何让 AI 在当前会话中准确理解项目。但有一个根本挑战始终存在:Claude Code 的每次会话都是无状态的——新对话开始时上下文窗口是空白的,前一个会话中建立的认知、确认的决策、积累的经验,全…

作者头像 李华
网站建设 2026/6/13 21:45:52

2天搭建HTML-first网站,流量翻倍!我把AI内容创作和SEO打通了

2026年的SEO游戏规则已经彻底变了。一位独立开发者用2天时间完成新站搭建&#xff0c;3个月后自然流量增长87%&#xff0c;验证了这套HTML-first AI内容自动化生产方案的威力。本文将完整拆解这套可复制的变现系统。 一、写在前面&#xff1a;为什么2026年必须重新审视建站方案…

作者头像 李华
网站建设 2026/6/13 21:44:55

JAVA常见API

一、字符串String字符串的内容是不可变的&#xff0c;它的对象在创建后不能被更改1. 创建字符串&#xff1a;①直接赋值 ②new关键字package Test_API;public class Test {public static void main(String[] args) {//1.直接赋值String s"abc";System.out.println(s)…

作者头像 李华