Next.js 开发指​南(GitHub 115k star​)

Next.js 是一个构建于 Node.js 之上的开源 Web 开发框架,它扩展了最新的 React 特性,集成了基于 Rust 的 JavaScript 工具,可以帮助你快速创建全栈 Web 应用 (full-stack Web applications) 。

对于有一定 React 基础的同学,Next.js 毫无疑问是进阶全栈工程师的最佳选择!

React 官方文档优先推荐的创建项目的方式便是使用 Next.js。目前 Next.js 在 GitHub 已有 115k star,Npm 周下载量 495W 左右,堪称最受欢迎的 Node.js 开发框架之一

c3d2fc6f95874a5390ca07f1868b8321.png 

 

Next.js 于 2016 年底开源发布,历经 7 年的发展,各种解决方案和社区生态已经十分完善。Next.js 更是于 2022 年底推出了支持 React Server Components 的颠覆性的 v13 版本。

在此版本,Next.js 推出了全新的 App Router 模式,同时优化升级了构建工具,为开发者带来了截然不同的开发体验。App Router 于 2023 年 5 月发布的 v13.4 版本进入稳定化。2023 年 10 月,Next.js 发布 v14 版本,Server Actions 也进入稳定化。这本小册便是基于目前最新的 v14 版本。

Next.js 提供开箱即用的 create-next-app脚手架,内置支持 TypeScript、ESLint,零配置即可实现自动编译和打包。支持服务端渲染(SSR)客户端渲染(CSR)静态站点生成(SSG)增量静态再生(ISR)、以及流式加载(Streaming)。v13 版本提供了基于 React Server Component 全新的路由解决方案 App Router 以及服务端数据更改方案 Server Actions,当然不止这些,Next.js 同时提供了现代 Web 应用开发常见的解决方案如:路由、渲染、中间件、数据获取、缓存、样式、国际化、元数据、Edge Runtime 等。

尽管是在业界非常受欢迎的框架,但 Next.js 文档在国内汉化方面十分落后,能搜到的中文文档基本都停留在非常老的版本且处于无人维护状态, 而 Next.js 官方文档早已全部重写,提供了多达百篇的详细介绍。加上 Next.js 2022 年底推出 v13 版本,提供了全新的功能,然而这些内容在国内也没有系统完整的介绍,能搜到的更多是单篇的粗略介绍,技术细节寥寥。

这就导致大家在使用 Next.js 的时候可以快速上手,但对于高阶的 API 却知之甚少。有更简单便捷的实现方案却不知道,对于一些细枝末节上的问题需要多次深入英文文档翻找,对于一些没有过多解释的地方更需要自己反复测试和理解,这无疑增大了使用 Next.js 的成本。

笔者曾经完整的整理过 TypeScript 文档,啃过 ECMAScript 规范,阅读英文文档倒也算顺畅,日常项目中也有在使用 Next.js,对于 Next.js 有一些自己的心得。为了帮助大家系统全面的掌握 Next.js,这本小册将分为“基础篇、实战篇、原理篇、面试篇”四大板块:

基础篇: 基于最新的 Next.js 官方文档,循序渐进讲解 Next.js App Router、高级路由功能、路由处理程序、中间件、数据获取与缓存、React Server ComponentStreamingEdge RuntimeTailwind CSS、内置优化组件、MDX、静态导出、路由段配置、环境变量、Draft ModeNext CLI 及配置项、国际化、常用 API 方法等内容。内容上力求做到详尽无遗漏,细节上添加多处解释和示例帮助大家理解,希望能将此本小册作为大家开发 Next.js 项目时的必备指导手册。

实战篇: 学技术尤其不能纸上谈兵,基础篇的知识细节也许过于零碎,实战篇的目的在于帮助你将这些知识融会贯通。我们会写 3 个完整的全栈项目,包括:

  1. React Notes 项目(目的在于深入理解服务端组件、客户端组件的特性)
  2. 博客项目(目的在于深入理解 Next.js 渲染方式与 MDX)
  3. 移动端 HTML5 项目 (仿 APP 样式,目的在于学习 Next.js 最佳实践)

相关的技术选型有 Ant Design + MongoDB + Mongoose + Redis + Nginx,会提供完整的源码供大家调试学习。

源码篇: Next.js 的源码阅读不算容易,我将从源码的角度帮助大家理解 Next.js 的运行原理与实现,让大家在使用 Next.js API 的时候,知其然知其所以然。遇到问题的时候,能追根溯源,彻底的解决问题。

面试篇: 最后,我会对面试中常问的 Next.js 相关问题做一份整理,告诉大家解题思路的同时提供一份自己的答案,帮助大家在面试的时候有所准备。

 

现在,低调务实优秀的中国好青年们,让我们一起开始学习 Next.js 吧!

你会学到什么?

  1. 循序渐进、系统全面的的建立 Next.js 知识体系;
  2. 学习 Next.js 最新的技术特性,了解技术前沿实践;
  3. 了解 Next.js 的运行原理,知其所以然;
  4. 一本可供开发 Next.js 项目时随时翻阅的技术指导手册;
  5. 一份关于 Next.js 的面试问题指导。

适宜人群

  • 有一定 React 基础,想进阶全栈开发的前端工程师;
  • 对 Next.js 感兴趣希望系统学习的同学;
  • 低调务实优秀的中国好青年。

82684a9a13c34a3dab9f3b1afd589f69.png

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/327689.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

虚拟机 以及 Centos 7的 安装全过程

目录 安装VMwere Workstion 虚拟机的操作过程 CentOS 7 安装过程 install CentOS 7 安装操作系统 安装VMwere Workstion 虚拟机的操作过程 更改安装位置 到下面图片中的这一个步骤,可以点击许可证,输入密钥就可以使用了, 密钥可以去某度或…

网络安全B模块(笔记详解)- 文件包含

文件包含的渗透与加固 1.使用渗透机场景kali中工具扫描服务器,将服务器上 File Inclusion首页概述页中的Flag提交; Flag:iloveu 2.使用渗透机场景windows7访问服务器场景网站中的File Inclusion(local)页面,找到根目录下Flag文件夹下的Flag.txt文件并将其内容提交; Flag:…

Linux中SSH远程管理服务

一、SSH服务 1.1.什么是SSH服务器? SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程 复制等功能。SSH 协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令&#…

回环检测算法:Stable Trangle Descriptor

回环检测是指检测传感器的两次测量(如图像、激光雷达扫描)是否发生在同一场景,它是对于SLAM问题至关重要。基于激光雷达的回环检测应该满足如下要求: 无论视点如何变化,回环检测方法应该实现旋转和平移不变性&#xf…

从零开始:Golang中JSON解析与生成的完全指南

从零开始:Golang中JSON解析与生成的完全指南 引言Golang与JSON:基础概念JSON简介为何在Golang中使用JSON Golang中JSON数据的解析使用encoding/json解析JSON解析成基本数据类型解析成自定义结构体错误处理和常见问题 Golang中生成JSON数据将Golang对象转…

两数之和(Hash表)[简单]

优质博文:IT-BLOG-CN 一、题目 给定一个整数数组nums和一个整数目标值target,请你在该数组中找出"和"为目标值target的那两个整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元…

Elasticsearch 7.8.0从入门到精通

安装Elasticsearch 7.8.0 官网:Elasticsearch 7.8.0 | Elastic 大家下载所需要的安装包即可。然后解压缩: Elasticsearch是通过java编写的,所以自带jdk。多好,下载Elasticsearch赠送jdk 0.0,不过一般我们用自己的jdk…

java发送邮件(注:本章以163邮箱为例)

目录 前言 一邮件服务器与传输协议 二.发送邮件思路 2.1注册163邮箱: 2.2、打开邮箱服务获取授权码 三.代码实现邮件发送 3.1第三方jar包 3.2创建邮件工具类 3.3编写测试类 前言 电子邮件的应用非常广泛,例如在某网站注册了一个账户,自动发送一…

C#/WPF 设置和启动Windows屏保程序

前言 我们平时电脑启动的屏保程序其本质也是应用程序,只是后缀名为.scr。所以我们只需要把应用程序后缀改为.scr,然后右键选择安装即可启动我们自己的屏保程序。 屏保注册表参数 设置电脑屏保参数,在个性化设置>锁屏界面>屏幕保护程序设…

解决若依Vue3前后端分离---路由切换时显示白屏

解决若依Vue3前后端分离---路由切换时显示白屏 1.问题重述 解决基于Vue3若依前后端分离项目中出现的路由正常切换但是就是不显示数据的问题&#xff0c;也就是不发起网络请求的问题。 找到如下位置中AppMain.vue文件 将除了css中的代码进行替换成如下的代码。 <template&g…

element-ui表单验证同时用change与blur一起验证

项目场景&#xff1a; 提示&#xff1a;这里简述项目相关背景&#xff1a; 当审批时不通过审批意见要必须输入&#xff0c; 1&#xff1a;如果用change验证的话删除所有内容时报错是massage的提示&#xff0c;但是在失去焦点的时候报错就成了英文&#xff0c;如下图&#xf…

K8S--Ingress的作用

原文网址&#xff1a;K8S--Ingress的作用-CSDN博客 简介 本文介绍K8S的Ingress的作用。 ----------------------------------------------------------------------------------------------- 分享Java真实高频面试题&#xff0c;吊打面试官&#xff1a; Java后端真实面试题…

【MIdjourney】几种独特的艺术风格

1.合成器波(Synthwave) Synthwave是一种音乐风格&#xff0c;起源于20世纪80年代电子音乐和电影的复古元素。这种音乐风格通常包括合成器音乐、电子鼓声和强烈的电子声效&#xff0c;以模拟80年代电影和视频游戏的声音。Synthwave的特点包括浓厚的合成器声音、强烈的节奏和对复…

代码随想录 Leetcode541. 反转字符串 II

题目&#xff1a; 代码(首刷自解 2024年1月16日&#xff09;&#xff1a; class Solution { public:void reverse(string& s,int left,int right) {char temp;while (left < right) {temp s[left];s[left] s[right];s[right] temp;left;--right;}return;}string rev…

[NSSCTF Round#16 Basic]了解过PHP特性吗

了解过PHP特性吗 wp 第一页题目代码&#xff1a; <?php error_reporting(0); highlight_file(__FILE__); include("rce.php"); $checker_1 FALSE; $checker_2 FALSE; $checker_3 FALSE; $checker_4 FALSE; $num $_GET[num]; if (preg_match("/[0-9]/…

基于Yolov5+Deepsort+SlowFast算法实现视频目标识别、追踪与行为实时检测

前言 前段时间打算做一个目标行为检测的项目&#xff0c;翻阅了大量资料&#xff0c;也借鉴了不少项目&#xff0c;最终感觉Yolov5DeepsortSlowfast实现实时动作检测这个项目不错&#xff0c;因此进行了实现。 一、核心功能设计 总的来说&#xff0c;我们需要能够实现实时检测视…

pyhton实现录屏

python代码录屏录音 写的不是很好&#xff0c;不如那些obs的录屏软件&#xff0c;而且没有实现音频和视频的合并&#xff0c;请多见谅。 def audio_record() 实现音频录制 def video_record() 实现视频录制 def on_press(key) 按键监听 import time,threading from datetime i…

【project】estimate Aβ-PET pattern

1.17 1.16 1.14 写一个函数&#xff0c;输入是每个文件的地址&#xff0c;然后能做这一系列的操作 用AFM0095进行bbr的配准 方法一&#xff0c;间接配准&#xff0c;frmi先到str&#xff0c;再到mni&#xff08;str2fmri后再fmri2str&#xff09; fmri2str 只需要dof 6,6个自…

ROS第 2 课 ROS 系统安装和环境搭建

文章目录 方法一&#xff1a;一键安装&#xff08;推荐&#xff09;方法二&#xff1a;逐步安装&#xff08;常规安装方式&#xff09;1.版本选择2.检查 Ubuntu 的软件和更新源3.设置 ROS 的下载源3.1 设置国内下载源3.2 设置公匙3.3 更新软件包 4. 安装 ROS5. 设置环境变量6. …

leetcode 2418. 按身高排序

题目 给你一个字符串数组 names &#xff0c;和一个由 互不相同 的正整数组成的数组 heights 。两个数组的长度均为 n 。 对于每个下标 i&#xff0c;names[i] 和 heights[i] 表示第 i 个人的名字和身高。 请按身高 降序 顺序返回对应的名字数组 names 。 解题方法&#xff…
最新文章