新版Next.js 15中5个令人惊叹的特性

前端岗位内推来了

Next.js 15已经到来,一切比以往更好!

从全新的编译器到700倍更快的构建时间,创建具有卓越性能的全栈Web应用从未如此简单。

让我们探索v15的最新特性:

1. create-next-app升级:更清晰的UI,700倍更快的构建

改进的设计

从这样:

c422fdcbe7b00a0c879a67f3a748626f.png

变成这样:

6574edf1cebd50462af5154977cac7b5.png

Webpack → Turbopack

Turbopack:世界上最快的模块打包器(至少他们是这么说的):

  • 比Webpack快700倍

  • 比Vite快10倍

现在在v15中,将其添加到你的Next.js项目比以往任何时候都更容易:

e3019fd1f7f08a51698950e204e51ede.png

2. React编译器,React 19支持,和用户友好的错误提示

React编译器就是一个React编译器(谁能想到呢)。

一个深入理解你的React代码的现代编译器。

带来诸如自动记忆化等优化——在绝大多数情况下消除了对 useMemo 和 useCallback 的需求。

节省时间,防止错误,加快速度。

而且设置非常简单:你只需安装babel-plugin-react-compiler

npm install babel-plugin-react-compiler

然后在next.config.js中添加这个

const nextConfig = {experimental: {reactCompiler: true,},
};module.exports = nextConfig;
React 19支持

带来了客户端和服务器端Actions等升级。

更好的hydration错误

开发体验意味着很多,错误消息的有用性在其中扮演着重要角色。

Next.js 15设置了更高的标准:现在对可能的错误修复方法提供智能建议。

v15之前:

3212fde409786477660c59b9cc29e3c3.png

现在:

359b2d97fa1db03077f2cc08311b0e5e.png

你知道我过去因这些hydration错误遇到过困难,所以这对我来说肯定会是一个无价之宝。

3. 新的缓存行为

不再自动缓存!

对于所有:

  • fetch() 请求

  • 路由处理程序:GETPOST

  • <Link> 客户端导航。

但如果你仍然想要缓存fetch()

// 'cache' 在 v15 之前默认是 'no-store'
fetch('https://example.com', { cache: 'force-cache' });

然后你可以通过一些next.config.js选项缓存其他内容。

4. 部分预渲染(PPR)

PPR在同一页面中结合了静态和动态渲染。

通过立即加载静态HTML并在同一HTTP请求中流式传输动态部分,大大提高了性能。

import { Suspense } from 'react';
import {StaticComponent,DynamicComponent,
} from '@app/ui';export const experimental_ppr = true;export default function Page() {return (<><StaticComponent /><Suspense fallback={...}><DynamicComponent /></Suspense></>);
}

你只需要在next.config.js中添加这个:

const nextConfig = {experimental: {ppr: 'incremental',},
};module.exports = nextConfig;
5.next/after

Next.js 15为你提供了一种清晰的方式来分离每个服务器请求中的必要和非必要任务

  • 必要:身份验证检查,数据库更新等

  • 非必要:日志记录,分析等

import { unstable_after as after } from 'next/server';
import { log } from '@app/utils';export default function Layout({ children }) {// 次要任务after(() => {log();});// 主要任务// 从数据库中获取(fetch())数据并渲染return <>{children}</>;
}

现在就用experimental.after开始使用:

const nextConfig = {experimental: {after: true,},
};module.exports = nextConfig;

这只是Next.js 15中所有影响深远的新特性中的5个。

现在就用npx create-next-app@rc获取它,开始享受显著改善的构建时间和更优秀的开发者体验。

最后:

CSS技巧与案例详解

vue2与vue3技巧合集

VueUse源码解读

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android进程保活:如何让app一直运行

目录 1&#xff09;为什么需要进行进程保活呢&#xff1f;需求是什么&#xff1f; 2&#xff09;进程分类 3&#xff09;进程的优先级 4&#xff09;如何提高进程优先级 5&#xff09;如何进行进程保活 一、为什么需要进行进程保活呢&#xff1f;需求是什么&#xff1f; 比如…

mysql高级语句的查询语句

一、排序语法&#xff0c;关键字排序 升序和降序 默认的排序方式就是升序 升序&#xff1a;ASC 降序&#xff1a;DESC 配合语法&#xff1a;order by 语法 1、升序 select * from info order by name; 根据名字升序排序&#xff0c;不需要加ASC select * from info order…

ChinaJoy 2024,VERYCLOUD睿鸿股份与你相聚

&#x1f3ae;2024 ChinaJoy于26日正式开幕 &#x1f557;7月26-28日 &#x1f310;VERYCLOUD睿鸿股份在BTOB商务洽谈馆 &#x1f31f;W4-B785展位 &#x1f387;展台交流好礼相送 与多行业好友现场相聚、畅谈&#x1f9d0; 现场游戏企业云集 专业观众、玩家纷至沓来 与游戏/短…

配置frp实现内网穿透(.toml配置文件)

简介 frp 是一款高性能的反向代理应用&#xff0c;专注于内网穿透。它支持多种协议&#xff0c;包括 TCP、UDP、HTTP、HTTPS 等&#xff0c;并且具备 P2P 通信功能。使用 frp&#xff0c;您可以安全、便捷地将内网服务暴露到公网&#xff0c;通过拥有公网 IP 的节点进行中转。…

APACHE安装与应用

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:Linux运维老纪的首页…

乱弹篇(40)人类追求长寿

不要认为只有中国的老龄化才严重&#xff0c;实际上全球都面临老龄化&#xff0c;其中日本最为严重。 这是随着人类生活和医学水平的不断提高&#xff0c;寿命才会比过去数十年有了大幅度的提升。据资料显示&#xff0c;目前全球平均预期寿命估计为73岁。与百年之前相比&#…

上半年手游出海吸金超624亿,混合变现帮助游戏提升收益

2024年上半年&#xff0c;海外游戏市场总收入达到惊人的325亿美元&#xff0c;App Store平台收入同比增长11%。这一数据反映了手游市场的巨大潜力和活力&#xff0c;不论是在App Store还是Google Play&#xff0c;玩家们对手游的热情有增无减&#xff0c;支撑了开发者们收益的不…

5行代码快速Git配置ssh

0 流程步骤 检查本地主机是否已经存在ssh key生成ssh key获取ssh key公钥内容&#xff08;id_rsa.pub&#xff09;复制该内容&#xff0c;到Github账号上添加公钥&#xff0c;进入Settings设置验证是否设置成功 1 代码 # 1.检查本地主机是否已经存在ssh key cd ~/.ssh ls # …

WEB前端15-Router路由

Vue2-router路由 在使用Vue.js构建现代单页面应用程序&#xff08;SPA&#xff09;时&#xff0c;路由管理是至关重要的一部分。Vue Router 是 Vue.js 官方的路由管理器&#xff0c;它允许你在应用程序中实现基于组件的页面导航。本文将介绍Vue Router的基本概念和用法&#x…

LSTM与GNN强强结合!全新架构带来10倍推理速度提升

今天来推荐一个深度学习领域很有创新性的研究方向&#xff1a;LSTM结合GNN。 GNN擅长处理图数据关系和特征&#xff0c;而LSTM擅长处理时间序列数据及长期依赖关系。通过将两者结合&#xff0c;我们可以有效提升时间序列预测的准确性和效率&#xff0c;尤其是在处理空间和时间…

vue配置多个环境变量ENV【收藏版】

vue配置多个环境变量 1. 创建环境变量文件 在你的Vue项目根目录下&#xff0c;你可以创建以下环境变量文件&#xff1a; .env&#xff1a;所有环境都会加载的通用变量。 .env.local&#xff1a;本地覆盖&#xff0c;不会被git跟踪。 .env.[mode]&#xff1a;只有指定模式才会…

光伏气象仿真系统有什么优势?

光伏气象仿真系统作为这一领域的核心工具&#xff0c;凭借其独特的优势&#xff0c;正逐步成为行业标配。本文将围绕数据可靠性、功能齐全性、海外布局支持、系统开放性以及合作方式灵活性五个方面&#xff0c;深入探讨光伏气象仿真系统的显著优势。 1.数据可靠&#xff1a;权威…

Java中的Heap(堆)(如果想知道Java中有关堆的知识点,那么只看这一篇就足够了!)

前言&#xff1a;&#xff08;Heap&#xff09;是一种特殊的完全二叉树&#xff0c;它在诸多算法中有着广泛的应用&#xff0c;本文将详细介绍Java中的堆。 ✨✨✨这里是秋刀鱼不做梦的BLOG ✨✨✨想要了解更多内容可以访问我的主页秋刀鱼不做梦-CSDN博客 先让我们看一下本文大…

微信小程序-获取手机号:HttpClientErrorException: 412 Precondition Failed: [no body]

问题&#xff1a; 412 异常就是你的请求参数获取请求头与服务器的不符&#xff0c;缺少请求体&#xff01; 我的问题&#xff1a; 我这里获取微信手机号的时候突然给我报错142&#xff0c;但是代码用的是原来的代码&#xff0c;换了一个框架就噶了&#xff01; 排查问题&am…

Springboot手工艺品交易平台—计算机毕业设计源码11541

摘 要 信息化社会内需要与之针对性的信息获取途径&#xff0c;但是途径的扩展基本上为人们所努力的方向&#xff0c;由于站在的角度存在偏差&#xff0c;人们经常能够获得不同类型信息&#xff0c;这也是技术最为难以攻克的课题。针对手工艺品交易平台等问题&#xff0c;对手工…

【MySQL进阶】事务隔离级别 MVCC

目录 MySQL事务隔离级别 1. 读未提交&#xff08;Read Uncommitted&#xff09; 2. 读已提交&#xff08;Read Committed&#xff09; 3. 可重复读&#xff08;Repeatable Read&#xff09;(默认隔离级别) 4. 串行化&#xff08;Serializable&#xff09; 表格总结 MVCC …

抖音爬虫-批量下载主页作品

使用说明 config.ini是配置文件&#xff0c;可配置文件名规则、下载视频图文音乐等。 DownloadList.txt是批量下载清单&#xff0c;可配置批量下载类型和地址。 打开软件&#xff0c;选择对应的功能&#xff0c;第一次扫码登录&#xff08;后续可自动加载cookie登录&#xff…

揭秘循环购模式:消费即收益

大家好&#xff0c;我是你们的电商策略顾问吴军。今天&#xff0c;我将带大家深入探索一种别开生面的商业模式——循环购模式。这种模式究竟有何魅力&#xff0c;能让消费者在享受购物乐趣的同时&#xff0c;还能获得额外的收益&#xff1f;更有趣的是&#xff0c;一些商家通过…

区块链软硬件协同,做产业数字化转型的“安全官” |《超话区块链》直播预告

今年的两会政府工作报告提出&#xff1a;“产业的数字化&#xff08;行业数字化转型&#xff09;是发展新质生产力的核心&#xff0c;是推动产业升级实现高质量发展的关键。”全面推进产业数字化&#xff0c;需要技术创新与产业应用深入协同&#xff1b;立足可持续发展的长远目…

Java面试八股之简述spring boot的目录结构

简述spring boot的目录结构 Spring Boot 项目遵循标准的 Maven 或 Gradle 项目布局&#xff0c;并且有一些约定的目录用于组织不同的项目组件。下面是一个典型的 Spring Boot 项目目录结构&#xff1a; src/main/java&#xff1a;包含所有的 Java 源代码&#xff0c;通常按包组…