【前端面试】挖掘做过的nextJS项目(上)
为什么使用nextJS
需求:
快速搭建宣传官网
1.适应pc、移动端
2.基本的路由跳转
3.页面渲染优化
4.宣传的图片、视频资源的加载优化
5.seo优化
全栈react web应用、
tailwind css原子工具的支持,方便书写响应式ui
app router(React 服务器组件)支持服务器渲染优化、code-spilit优化
next/image、next/video的优化支持
服务端渲染对seo友好
基础
介绍 | Next.js 中文网
构建全栈 Web 应用的 React 框架。可以使用 React Components 来构建用户界面,并使用 Next.js 来实现附加功能和优化。
在底层,Next.js 还抽象并自动配置 React 所需的工具,例如打包、编译等。这使你可以专注于构建应用,而不是花时间进行配置。
使用 Next.js 的脚手架工具 create-next-app 来快速创建一个新的 Next.js 项目。
npx create-next-app@latest
create-next-app 提供了一些选项来定制你的 React 项目,包括但不限于:

- 使用 TypeScript 初始化项目 (
--typescript或--ts)。 - 初始化 JavaScript 项目 (
--javascript或--js)。 - 集成 Tailwind CSS (
--tailwind)。 - 初始化带有 ESLint 配置的项目 (
--eslint)。 - 使用 App Router (
--app)。 - 在
src/目录中初始化项目 (--src-dir)。 - 启用 Turbopack (
--turbo)。 - 指定导入别名 (
--import-alias)。 - 初始化一个空项目 (
--empty)。 - 指定包管理器 (
--use-npm,--use-yarn,--use-pnpm,--use-bun)。

路由
App Router
版本 13 中,Next.js 引入了基于 React 服务器组件 构建的新 App Router
App Router 在名为 app 的新目录中工作。app 目录与 pages 目录一起工作,以允许增量采用。这允许你将应用的某些路由选择为新行为,同时将其他路由保留在 pages 目录中以实现以前的行为。App Router 的优先级高于 Pages Router。
在 next.config.js 中将 experimental.clientRouterFilter 设置为 false。禁用此功能后,默认情况下,页面中与应用路由重叠的任何动态路由将无法正确导航。
React 服务器组件允许你编写可以在服务器上渲染和选择性缓存的 UI。在 Next.js 中,渲染工作被路由段进一步分割,以实现流式渲染和部分渲染,并且存在三种不同的服务器渲染策略:
page router
默认情况下,Next.js 使用服务器组件。这允许你自动实现服务器渲染,无需额外配置,并且你可以在需要时选择使用客户端组件
客户端组件允许你编写 在服务器上预渲染 的交互式 UI,并且可以使用客户端 JavaScript 在浏览器中运行。
路由导航
Next.js 有四种在路由之间导航的方法:
-
使用 <Link> 组件
-
使用 useRouter 钩 (客户端组件)
-
使用 redirect 功能 (服务器组件)
-
使用原生 历史 API
API 路由
API 路由提供了使用 Next.js 构建公共 API 的解决方案。
文件夹 pages/api 内的任何文件都会映射到 /api/*,并将被视为 API 端点而不是 page。它们只是服务器端打包包,不会增加客户端打包包的大小。
相关文章:
【前端面试】挖掘做过的nextJS项目(上)
为什么使用nextJS 需求: 快速搭建宣传官网 1.适应pc、移动端 2.基本的路由跳转 3.页面渲染优化 4.宣传的图片、视频资源的加载优化 5.seo优化 全栈react web应用、 tailwind css原子工具的支持,方便书写响应式ui app router(React 服务器组件)支持服务器渲…...
【Unity-UGUI】UGUI知识汇总
目录 前言1 UGUI系统原理2 事件系统2.1 EventSystem2.2 InputModules2.3 Raycasters2.4 协作 3 UGUI系统的组件3.1 Image和RawImage3.2 Mask和RectMask2D 扩展UI穿透问题 前言 记录一些最近学到的有关UGUI的知识。 参考 知乎:6千字带你入门UGUI源码 书籍ÿ…...
JavaScript性能测试:策略、工具与实践
在Web开发中,性能测试是确保应用程序达到预期响应速度和处理能力的关键步骤。JavaScript作为构建交互式Web应用的核心语言,其性能直接影响用户体验。本文将详细介绍如何使用JavaScript进行性能测试,包括性能测试的基本概念、测试类型、工具、…...
嵌入式软件开发学习一:软件安装(保姆级教程)
资源下载: 江协科技提供: 资料下载 一、安装Keil5 MDK 1、双击.EXE文件,开始安装 2、 3、 4、此处尽量不要安装在C盘,安装路径选择纯英文,防止后续开发报错 5、 6、 7、弹出来的窗口全部关闭,进入下一步&a…...
SpringMVC学习中遇到的不懂注解记录
文章目录 Autowrite 和 ResourceQualifier 和 PrimaryPathVariableController、Service、Repository 和 Component Autowrite 和 Resource 我们先讲讲 Autowrite 注解 吧。 public class StudentService3 implements IStudentService {//Autowiredprivate IStudentDao studentD…...
Java面试题--分布式锁
分布式锁 你说一下什么是分布式锁 分布式锁是在分布式/集群环境中解决多线程并发造成的一系列数据安全问题.所用到的锁就是分布式锁,这种锁需要被多个应用共享才可以,通常使用Redis和zookeeper来实现。 分布式锁有哪些解决方案 常用的三种方案 基于…...
一文讲清数据平台与数据中台的关系与区别
前言 如果您是IT领域或者数据领域的从业者,一定对IT行业“创造”概念的能力深有体会,也一定经常被看起来名称相似,但又不同的各种概念绕的云里雾里,摸不着头脑。今天我们要讨论的是数据平台和数据中台两个概念,您是不…...
Android的Service和Thread的区别
Service 是一种可在后台执行长时间运行操作而不提供界面的应用组件。 Android Service是组件,既不能说它是单独的进程也不能说它是单独的线程。 如果非要从通俗的语言层面来理解的话,姑且将其理解为对象。这个Service对象本身作为应用程序的一部分与它的…...
经纬恒润亮相第四届焉知汽车年会,功能安全赋能域控
8月初,第四届焉知汽车年会在上海举行。此次年会围绕当下智能电动汽车的热点和焦点,聚焦于智能汽车场景应用、车载通信、激光雷达、智能座舱、功能安全、电驱动系统等多个领域,汇聚了来自OEM、科技公司、零部件供应商、测试认证机构、政府院校…...
掌握JavaScript单元测试:最佳实践与技术指南
单元测试是软件开发过程中的关键环节,它帮助开发者确保代码的每个独立部分按预期工作。在JavaScript开发中,进行单元测试不仅可以提高代码质量,还可以加快开发速度,因为它们为代码更改提供了安全网。本文将详细介绍如何使用JavaSc…...
spring boot 古茶树管理系统---附源码19810
目 录 摘要 1 绪论 1.1 研究背景 1.2国内外研究现状 1.3论文结构与章节安排 2古茶树管理系统系统分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2经济可行性分析 2.1.3操作可行性分析 2.2 系统流程分析 2.2.1 数据流程 3.3.2 业务流程 2.3 系统功能分析 2.3.1 …...
00067期 matlab中的asv文件
今天在编写代码的过程中,发现自动生成.m文件的同名文件.asv,特此发出疑问?下面是解答: 有时在存放m文件的文件夹中会出现*.asv asv 就是auto save的意思,*.asv文件的内容和相应的*.m文件内容一样,用记…...
JMeter高效管理测试数据-参数化
文章目录 1.什么是参数化2.定义变量3.CSV数据文件设置 1.什么是参数化 在JMeter中,参数化是一种常用的技术,用于使测试场景更加灵活和动态。通过参数化,你可以让JMeter在每次请求中使用不同的值,这在模拟真实用户行为或测试不同输…...
python学习之writelines
在Python中,writelines() 是一个方法,它属于文件对象,用于将字符串列表写入到文件中。这个方法接受一个序列(如列表或元组)作为参数,序列中的每个元素都是要写入的一行文本。 ### 函数定义: p…...
STM32学习笔记13-FLASH闪存
FLASH简介 STM32F1系列的FLASH包含程序存储器、系统存储器和选项字节三个部分,通过闪存存储器接口(外设)可以对程序存储器和选项字节进行擦除和编程读写FLASH的用途: 利用程序存储器的剩余空间来保存掉电不丢失的用户数据 通过在…...
UIButton的UIEdgeInsetsMake属性(setTitleEdgeInsets,setImageEdgeInsets)
一.UIEdgeInsetsMake的四个属性 UIEdgeInsetsMake 有四个属性,依次是 Top,left,bottom,right [Btn setTitleEdgeInsets:UIEdgeInsetsMake( top, left, bottom, right)]; 四个属性的默认值为0,拿其中一个left属性来聊, 你可以理解为文字距离Btn左边界的“位移”是0, 如果…...
子网掩码是什么?
子网掩码(Subnet Mask)是用于划分网络的一个32位的二进制数,用于指示IP地址中哪些位用于网络标识,哪些位用于主机标识。 在IPv4网络中,IP地址由32位二进制数组成,通常表示为四个十进制数,每个数…...
SQLALchemy 数据的 CRUD 操作
SQLALchemy 数据的 CRUD 操作 导入必要的模块创建数据库引擎创建会话CRUD 操作创建(Create)读取(Read)更新(Update)删除(Delete)过滤条件使用 `filter` 方法使用 `filter_by` 方法总结聚合函数使用ORM接口使用SQL表达式语言注意关闭会话注意事项SQLAlchemy 是一个流行的…...
reactFiberLane
Lane (车道模型) 英文单词lane翻译成中文表示"车道, 航道"的意思, 所以很多文章都将Lanes模型称为车道模型 Lane模型的源码在ReactFiberLane.js, 源码中大量使用了位运算(有关位运算的讲解, 首先引入作者对Lane的解释(相应的 pr), 这里简单概括如下: Lane类型被定义…...
Hackademic.RTB1靶场实战【超详细】
靶机下载链接:https://download.vulnhub.com/hackademic/Hackademic.RTB1.zip 一、主机探测和端口扫描 nmap 192.168.121.0/24 ip:192.168.121.196 端口:22、80 二、访问80端口 发现target可点击 点击后跳转,页面提示目标是读取到 key.txt 文件 fin…...
基于ASR与NLP的法庭音频智能分析系统:架构、微调与法律场景实践
1. 项目概述:当法庭记录“开口说话” 在司法与法律科技领域,数据正以前所未有的方式重塑工作流程。传统的法庭记录,无论是书记员手写的笔录,还是后来普及的录音录像,其核心价值在于“记录”本身——它们是静态的、被动…...
QSplitter实战:打造可动态调整的专业级应用界面
1. QSplitter:让界面布局活起来的魔法棒 第一次用QSplitter的时候,我正被一个IDE项目的界面布局折磨得焦头烂额。左侧导航栏、中间代码区、右侧属性面板,这三个区域就像三个固执的老头,死活不肯按照用户期望的比例显示。直到发现Q…...
别再让电机烧了!聊聊工业设备中三相电源保护的两种经典电路设计与选型
工业三相电机保护电路设计实战:从原理到工程落地 在空压机房嘈杂的轰鸣声中,老王师傅正对着烧毁的电机摇头叹气——这已经是本月第三台因电源故障报废的设备。类似场景在工业现场屡见不鲜,统计显示超过40%的电机故障源于电源异常,…...
从Matlab到示波器:手把手教你用Vivado和FPGA实现20kHz SPWM信号(附完整代码)
从Matlab到示波器:FPGA实现20kHz SPWM信号的工程实践指南 在电力电子和电机控制领域,SPWM(正弦脉宽调制)技术因其高效和精确的特性而广受青睐。本文将带领读者完成一个完整的FPGA实现SPWM信号的工程流程,从Matlab数据生…...
3步重构你的系统菜单:告别混乱的高效管理方案
3步重构你的系统菜单:告别混乱的高效管理方案 【免费下载链接】ContextMenuManager 🖱️ 纯粹的Windows右键菜单管理程序 项目地址: https://gitcode.com/gh_mirrors/co/ContextMenuManager 你是否曾经在右键点击文件时,面对满屏的无关…...
初识java(三):运算符
目录 一:什么是运算符 二:算术运算符 1. 基本四则运算符:加减乘除模( - * / %) 2.增量运算符 - * % 3. ⾃增/⾃减运算符 -- 三:关系运算符 四:逻辑运算符(重点) 1.逻辑与&& 2.逻辑 || …...
PostgreSQL 与 MySQL InnoDB 隔离级别 MVCC 核心对比
一、数据库标准四大隔离级别 SQL 标准定义 4 个隔离级别,从低到高: 读未提交(Read Uncommitted)读已提交(Read Committed,RC)可重复读(Repeatable Read,RR)串…...
自建团队协作平台TeamClaw:从架构设计到部署运维全指南
1. 项目概述与核心价值最近在折腾一个挺有意思的开源项目,叫teamclaw,仓库地址是teamclawai/teamclaw。乍一看这个名字,可能有点摸不着头脑,但深入了解一下,你会发现它瞄准的是一个非常具体且高频的痛点:团…...
保姆级教程:手把手配置英飞凌TC397开发板的调试环境(含板载MiniWiggler与外部DAP接口详解)
英飞凌TC397开发板调试环境全攻略:从接口选择到实战配置 拿到英飞凌TC397开发板的第一天,面对板载的miniWiggler、引出的DAP接口以及各种调试选项,不少开发者都会陷入选择困难。这块功能强大的开发板确实提供了多种调试路径,但每种…...
避开学术‘红线’:手把手教你用AI+ArcMap合法合规处理论文中的中国地图
科研地图合规处理全流程:从标准地图到安全应用的实战指南 在学术研究中,地图作为重要的空间表达工具,其规范使用直接关系到研究成果的合法性和可信度。近年来,随着科研管理日趋严格,地图使用不当导致的论文撤稿、项目终…...
