自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

React 15 RC 版本已發(fā)布!談?wù)勥@ 6 個(gè)令人驚嘆的新功能

開發(fā) 前端
在處理用戶請求時(shí),服務(wù)器通常會執(zhí)行與計(jì)算響應(yīng)直接相關(guān)的任務(wù)。但是,開發(fā)者可能需要執(zhí)行日志記錄、分析和其他外部系統(tǒng)同步等任務(wù)。

Hello,大家好,我是 Sunday。

5月23日,Next.JS 正式公布了 15 RC(候選版本)。這幾乎標(biāo)志著 Next.JS 15 的所有全新功能都已經(jīng)確定下來了。

圖片圖片

在這里它提供了很多全新更新,其中有 6 個(gè)我個(gè)人認(rèn)為 價(jià)值較大 的全新功能(或更新),咱們一起來看一下吧!

一、create-next-app更新

圖片圖片

運(yùn)行 create-next-app 時(shí),會出現(xiàn)一個(gè)新的提示詢問:是否要啟用 Turbopack 進(jìn)行本地開發(fā)(默認(rèn)為No)。

? Would you like to use Turbopack for next dev? … No / Yes

這意味著,Next.JS 將逐步從 webpack 過渡到 Turbopack

Turbopack:最快的模塊打包器之一

據(jù) Turbopack官網(wǎng) 描述(真實(shí)情況有待商榷):Turbopack 比 Webpack 快 700 倍,比 Vite 快 10 倍。

可以使用 --turbo 來啟用 Turbopack:

npx create-next-app@rc --turbo

二、React Compiler、React 19 的支持

Next.js App Router 建立在 React Canary 之上,這使得開發(fā)者可以在 React v19 發(fā)布之前使用這些新的 React API 。其中包括客戶端和服務(wù)器的新功能,例如:Actions。

而 React Compiler 是一個(gè) React 編譯器。

React Compiler 是 React 團(tuán)隊(duì)在 Meta 上創(chuàng)建的一個(gè)新實(shí)驗(yàn)性編譯器。該編譯器通過對純 JavaScript 語義和 React 規(guī)則的理解,可以深入理解你的代碼,這使其能夠?yàn)槟拇a添加自動優(yōu)化。編譯器通過諸如 useMemo 和之類的 API 減少了開發(fā)人員必須執(zhí)行的手動記憶量 useCallback - 使代碼更簡單、更易于維護(hù)且更不容易出錯(cuò)。

使用方式如下:

  1. 安裝 babel-plugin-react-compiler:
npm install babel-plugin-react-compiler
  1. 然后,在 next.config.js 中添加 experimental.reactCompiler 選項(xiàng) :
const nextConfig = {
  experimental: {
    reactCompiler: true,
  },
};
 
module.exports = nextConfig;
  1. 或者,可以將編譯器配置為以“選擇加入”模式運(yùn)行,如下所示:
const nextConfig = {
  experimental: {
    reactCompiler: {
      compilationMode: 'annotation',
    },
  },
};
 
module.exports = nextConfig;

3.更好地錯(cuò)誤提示

Next.js 14.1 對錯(cuò)誤消息和 Hydration 錯(cuò)誤進(jìn)行了改進(jìn)。Next.js 15 繼續(xù)在此基礎(chǔ)上進(jìn)行改進(jìn),添加了改進(jìn)的 Hydration 錯(cuò)誤視圖。

Hydration 錯(cuò)誤現(xiàn)在會顯示錯(cuò)誤的源代碼,并提供有關(guān)如何解決問題的建議。

例如,這是 Next.js 14.1 中先前的錯(cuò)誤消息:

圖片圖片

Next.js 15 RC 對此進(jìn)行了改進(jìn):

圖片圖片

4.全新的緩存邏輯

Next.js App Router 推出了自定義緩存默認(rèn)值。這些默認(rèn)值旨在默認(rèn)提供性能最高的選項(xiàng),并可在需要時(shí)選擇退出。

并不再自動緩存!

根據(jù)反饋,重新評估了緩存啟發(fā)式方法以及它們?nèi)绾闻c部分預(yù)渲染(PPR)等項(xiàng)目以及使用第三方庫進(jìn)行交互。在 Next.js 15 中,將請求、路由處理程序和客戶端路由器緩存的緩存默認(rèn)GET設(shè)置從默認(rèn)緩存更改為默認(rèn)不緩存。

如果想要緩存,那么需要手動配置,以下是一個(gè)使用 faetch API 的示例:

fetch('https://...', { cache: 'force-cache' | 'no-store' });

5.逐步采用部分預(yù)渲染(實(shí)驗(yàn)性)

在 Next.js 14 中,引入了部分預(yù)渲染 (PPR) - 一種結(jié)合靜態(tài)和動態(tài)渲染的優(yōu)化在同一頁上。

除非使用動態(tài)函數(shù),否則 Next.js 目前默認(rèn)為靜態(tài)渲染例如cookies()、、headers()以及未緩存的數(shù)據(jù)請求。

這些 API 將整個(gè)路由選擇為動態(tài)渲染。使用 PPR,開發(fā)者可以將任何動態(tài) UI 包裝在 Suspense 邊界中。當(dāng)新請求進(jìn)入時(shí),Next.js 將立即提供靜態(tài) HTML shell,然后在同一個(gè) HTTP 請求中渲染和流式傳輸動態(tài)部分。

為了允許逐步采用,新版本添加了 experimental_ppr 路線配置選項(xiàng),用于將特定的布局和頁面選擇到 PPR 中:

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>
     </>
  };
}

6.在響應(yīng)后執(zhí)行代碼next/after(實(shí)驗(yàn)性)

在處理用戶請求時(shí),服務(wù)器通常會執(zhí)行與計(jì)算響應(yīng)直接相關(guān)的任務(wù)。但是,開發(fā)者可能需要執(zhí)行日志記錄、分析和其他外部系統(tǒng)同步等任務(wù)。

由于這些任務(wù)與響應(yīng)沒有直接關(guān)系,因此用戶不必等待它們完成。

after()是一個(gè)新的實(shí)驗(yàn)性 API,它通過允許開發(fā)者在響應(yīng)完成流式傳輸后安排要處理的工作來解決此問題,從而使輔助任務(wù)能夠在不阻塞主響應(yīng)的情況下運(yùn)行。

要使用它,請?zhí)砑?nbsp;experimental.after 到 next.config.js:

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

責(zé)任編輯:武曉燕 來源: 程序員Sunday
相關(guān)推薦

2023-12-10 14:19:31

JupyterPython編碼

2024-07-31 08:38:36

2020-11-10 07:11:23

Linux內(nèi)核補(bǔ)丁

2011-03-18 09:56:19

JavaScript

2012-11-15 09:59:35

HTML5WebHTML5特效

2024-08-05 08:38:13

2020-12-22 15:47:02

Python開發(fā)工具

2012-03-01 11:32:18

硅谷女性

2011-04-07 11:33:00

HTML 5JavaScript

2021-11-29 07:02:24

Python函數(shù)操作

2025-02-17 11:10:49

2020-02-19 14:47:25

人工智能技術(shù)無人駕駛

2022-03-23 15:11:04

Arch LinuxLinuxCutefish 桌

2010-02-22 14:00:29

Visual Stud

2024-05-16 11:09:40

Python字符串代碼

2023-03-16 14:25:43

GPT-4人工智能

2024-02-04 18:20:53

AI模型代碼

2022-01-26 13:00:07

Vue.js UI組件Web

2018-06-19 07:49:49

物聯(lián)網(wǎng)足球科技世界杯

2023-11-18 09:07:59

Go語言技巧
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號