当前位置: 首页 > news >正文

nuxt学习笔记

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校验

  • 安装:cookie-universal-nuxt
  • 思想:登录时,同步vuex && cookie,强制刷新后,nuxtserverInit钩子,取出cookies,同步vuex,axios拦截器读取vuex中的token,进行token校验
  • 如何在nuxt项目中使用cookie-universal-nuxt进行状态持久化和token校验?

如何在nuxt项目中使用scss

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

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

http://www.dtcms.com/a/316272.html

相关文章:

  • 学术论文命名:策略、方案、方法三者的区别
  • 使用Docker Desktop部署MySQL8.4.3
  • LeetCode 149:直线上最多的点数
  • 深入理解 C 语言中的拷贝函数
  • 多模态新方向|从数据融合到场景落地,解锁视觉感知新范式
  • 智能驾驶再提速!批量苏州金龙L4级自动驾驶巴士交付杭州临平区
  • 结合opencv解释图像处理中的结构元素(Structuring Element)
  • 使用PyQT创建一个简单的图形界面
  • 【面试场景题】日志去重与统计系统设计
  • 人工智能领域、图欧科技、IMYAI智能助手2025年5月更新月报
  • UGUI源码剖析(1):基础架构——UIBehaviour与Graphic的核心职责与生命周期
  • Git 中**未暂存**和**未跟踪**的区别:
  • 【深度学习-Day 41】解密循环神经网络(RNN):深入理解隐藏状态、参数共享与前向传播
  • P2161 [SHOI2009] 会场预约
  • 中山铸造加工件自动蓝光三维测量方案-中科米堆CASAIM
  • 喷砂机常见故障及排除维修解决方法有哪些?
  • 猎板深度解析:EMI 干扰 —— 电子设备的隐形 “破坏者”
  • Dot1x认证原理详解
  • 利用 Radius Resource Types 扩展平台工程能力
  • 在 QtC++ 中调用 OpenCV 实现特征检测与匹配及图像配准应用
  • Linux DNS缓存与Nginx DNS缓存运维文档
  • 数据结构 | 树的秘密
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘pytorch-lightning’问题
  • 机器学习之线性回归与逻辑回归
  • 网络muduo库的实现(2)
  • 计算机算术5-整形除法
  • MySql数据库归档工具pt-archiver
  • Android audio之 AudioDeviceInventory
  • 第三方验收测试报告:软件项目验收中的核心要素
  • 前端权限设计