nuxt学习笔记

发布于:2025-08-06 ⋅ 阅读:(15) ⋅ 点赞:(0)

nuxt学习笔记

项目创建

安装

npx create-nuxt-app@2.15.0 my-nuxt-app

选择渲染模式 - Universal (SSR / SSG)

开发

npm run dev

打包与启动

npm run build
npm run start

nuxt生命周期

  • nuxtServerInit
    在store中,用于初始化数据

  • middleware
    中间件执行流程顺序:
    nuxt.config.js->匹配布局->匹配页面

  • validate
    参数校验、校验失败,则自动跳转到404 error页面

  • asyncData,fetch
    异步数据获取,数据在页面渲染前获取,数据获取失败,则自动跳转到404 error页面

  • beforeCreate,created
    在ssr和csr中,都会执行

  • vue的生命周期钩子函数

路由

约定式

  • 展示区:<nuxt />

  • 声明式跳转:

    <nuxt-link :to="{name:'product-id',params:{id:123},query:{a:1}}">product</nuxt-link>
    
    • name: 路由名称(目录名->其他目录名->文件名)
    • params: 路由参数,key值与文件名(路由参数名)一致
  • 子路由
    目录代表子路由,子路由内部同级的文件,代表是同级路由

  • 展示区的层级控制
    请添加图片描述

  pages/一级展示/二级展示 
               /index.vue 会在一级展示  
               /index.vue 空文档 代表有默认页,不会找寻其他 _other-page-详情.vue

这是一个 路由映射表结构,用于展示 URL 路径(PATH)与对应 Vue 组件文件(FILE)的关联关系,常见于 Vue 路由配置场景(如 Vue Router),核心逻辑是:

1. 静态路径匹配
  • / 路径 → 对应根目录下的 index.vue,一般是应用首页组件
  • /goods 路径 → 对应 goods 目录下的 index.vue,通常是商品列表页等一级路由
2. 动态路由匹配
  • /goods/123 路径 → 对应 goods/_id.vue_id动态路由参数(如商品 ID),可通过 $route.params.id 在组件内获取 123 这类实际参数值
3. 嵌套/子路由匹配
  • /goods/comment 路径 → 对应 goods/comment.vue,作为 /goods 路径的子路由,可在 goods/index.vue 中用 <router-view> 渲染该评论组件

简单说,就是 URL 路径规则 → Vue 组件文件 的映射关系表,帮你理解前端路由如何根据不同 URL 渲染对应页面。

扩展路由

  • nuxt.config.js->router->extendRoutes
router: {
  extendRoutes(routes, resolve) {
    routes.push({
      name: 'custom',
      path: '/custom',
      component: resolve(__dirname, 'pages/custom.vue')
    })
  }
}

路由守卫

前置

依赖中间件middleware或者是插件
中间件middleware执行顺序:
nuxt.config.js(middleware目录下)->匹配布局layouts(定义中间件)->匹配页面(页面级别中间件)
使用插件前置路由守卫:nuxt.config.js->plugins->router->beforeEach
使用插件后置路由守卫:nuxt.config.js->plugins->router->afterEach

后置

使用vue的beforeRouteLeave钩子函数
使用插件后置路由守卫:nuxt.config.js->plugins->router->afterEach

数据交互

安装nuxt集成的axios

npm install @nuxtjs/axios@5.9.7 @nuxtjs/proxy@1.3.3 --save

如何在nuxt项目中使用axios进行网络请求?

loading页配置与定制

  • nuxt.config.js->loading配置loading颜色、loading组件、loading显示时间、loading显示位置等

vuex定义与使用

如何在nuxt项目中使用vuex?

状态持久化与token校验

如何在nuxt项目中使用scss

如何在nuxt项目中进行meta信息注入

如何在nuxt项目中自定义模板


网站公告

今日签到

点亮在社区的每一天
去签到