日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

Next.js 14 正式發(fā)布,更快、更強、更可靠!

來源: 責編: 時間:2023-10-27 17:20:21 304觀看
導讀10 月 26 日,Next.js 正式發(fā)布。該版本的主要更新如下:Turbopack:App & Pages Router 通過 5000 個測試本地服務(wù)器啟動速度提高了 53%通過快速刷新,代碼更新速度提高 94%服務(wù)端操作(穩(wěn)定):逐步增強的數(shù)據(jù)變更集成了緩存和重

IK728資訊網(wǎng)——每日最新資訊28at.com

10 月 26 日,Next.js 正式發(fā)布。該版本的主要更新如下:IK728資訊網(wǎng)——每日最新資訊28at.com

  • Turbopack:App & Pages Router 通過 5000 個測試
  • 本地服務(wù)器啟動速度提高了 53%
  • 通過快速刷新,代碼更新速度提高 94%
  • 服務(wù)端操作(穩(wěn)定):逐步增強的數(shù)據(jù)變更
  • 集成了緩存和重新驗證
  • 簡單的函數(shù)調(diào)用,或者與表單原生配合工作
  • 部分預渲染(預覽):快速的初始靜態(tài)響應 + 流式動態(tài)內(nèi)容
  • Next.js Learn(全新):教授 App Router、身份驗證、數(shù)據(jù)庫等內(nèi)容的免費課程。

可以通過以下命令來立即升級最新版本:IK728資訊網(wǎng)——每日最新資訊28at.com

npx create-next-app@latest

Next.js 編譯器

自 Next.js 13 以來,Next 團隊一直致力于提高 Next.js 中 Pages 和 App Router 的本地開發(fā)性能。IK728資訊網(wǎng)——每日最新資訊28at.com

之前,Next 團隊通過重寫 Next.js 的 next dev 和其他部分以實現(xiàn)這一目標。然而,后來改變了方法,采取了更漸進的方式。現(xiàn)在,重點是首先支持所有 Next.js 的功能,因此基于 Rust 的編譯器很快就會穩(wěn)定下來。IK728資訊網(wǎng)——每日最新資訊28at.com

Next.js 使用基于 Rust 引擎的 Turbopack,現(xiàn)在已經(jīng)通過了 5000 個 next dev 的集成測試。這些測試涵蓋了過去 7 年中的錯誤修復和重現(xiàn)。IK728資訊網(wǎng)——每日最新資訊28at.com

在大型 Next.js 應用 vercel.com 上進行測試時,可以看到:IK728資訊網(wǎng)——每日最新資訊28at.com

  • 本地服務(wù)器啟動速度提高高達 53.3%
  • 通過快速刷新,代碼更新速度提高高達 94.7%

該基準測試是大型應用(和大型模塊圖)性能改進的實際結(jié)果。現(xiàn)在,next dev 的 90% 測試已經(jīng)通過,在使用 next dev --turbo 時,應該會看到更快、更可靠的性能表現(xiàn)。IK728資訊網(wǎng)——每日最新資訊28at.com

一旦達到 100% 的測試通過,將在即將發(fā)布的次要版本中將 Turbopack 移至穩(wěn)定版本。另外,還將繼續(xù)支持使用 webpack 進行自定義配置和生態(tài)系統(tǒng)插件。IK728資訊網(wǎng)——每日最新資訊28at.com

可以在 areweturboyet.com 上關(guān)注通過測試的百分比。IK728資訊網(wǎng)——每日最新資訊28at.com

表單和數(shù)據(jù)變更

Next.js 9 引入了 API Routes,這是一種快速構(gòu)建后端端點的方法,可以與前端代碼一起使用。IK728資訊網(wǎng)——每日最新資訊28at.com

例如,可以在 api/ 目錄中創(chuàng)建一個新文件:IK728資訊網(wǎng)——每日最新資訊28at.com

import type { NextApiRequest, NextApiResponse } from 'next'; export default async function handler(  req: NextApiRequest,  res: NextApiResponse,) {  const data = req.body;  const id = await createItem(data);  res.status(200).json({ id });}

然后,在客戶端,可以使用 React 和 onSubmit 等事件處理程序來獲取 API 路由:IK728資訊網(wǎng)——每日最新資訊28at.com

import { FormEvent } from 'react'; export default function Page() {  async function onSubmit(event: FormEvent<HTMLFormElement>) {    event.preventDefault();     const formData = new FormData(event.currentTarget);    const response = await fetch('/api/submit', {      method: 'POST',      body: formData,    });     // Handle response if necessary    const data = await response.json();    // ...  }   return (    <form onSubmit={onSubmit}>      <input type="text" name="name" />      <button type="submit">Submit</button>    </form>  );}

現(xiàn)在,隨著 Next.js 14 的推出,希望簡化開發(fā)者在編寫數(shù)據(jù)變更時的體驗。此外,還希望在用戶網(wǎng)絡(luò)連接較慢或從低功率設(shè)備提交表單時改善用戶體驗。IK728資訊網(wǎng)——每日最新資訊28at.com

服務(wù)端操作(穩(wěn)定)

如果不想手動創(chuàng)建 API Route,那么可以定義一個函數(shù),在服務(wù)端安全地運行,并直接從 React 組件中調(diào)用它。IK728資訊網(wǎng)——每日最新資訊28at.com

App Router 構(gòu)建在 React canary 通道上,對于框架 采用新功能來說是穩(wěn)定的。從 v14 開始,Next.js 已升級到最新的 React canary,其中包括穩(wěn)定的服務(wù)器操作。IK728資訊網(wǎng)——每日最新資訊28at.com

App Router 是建立在 React canary 通道上的,這個通道對于框架來采用新功能是穩(wěn)定的。從 v14 開始,Next.js 已經(jīng)升級到了最新的 React canary 版本,其中包含穩(wěn)定的服務(wù)端操作功能。IK728資訊網(wǎng)——每日最新資訊28at.com

前面 Pages Router 的例子可以簡化為一個文件:IK728資訊網(wǎng)——每日最新資訊28at.com

export default function Page() {  async function create(formData: FormData) {    'use server';    const id = await createItem(formData);  }   return (    <form action={create}>      <input type="text" name="name" />      <button type="submit">Submit</button>    </form>  );}

服務(wù)端操作對于之前使用過服務(wù)端中心框架的開發(fā)者來說應該會很熟悉。它是建立在 Web 基礎(chǔ)知識(如表單和 FormData Web API)之上的。IK728資訊網(wǎng)——每日最新資訊28at.com

通過表單使用服務(wù)端操作對于漸進增強是有幫助的,但并不是必需的。也可以直接將其作為函數(shù)調(diào)用,而無需使用表單。在使用 TypeScript 時,這提供了完整的端到端類型安全性,確保客戶端和服務(wù)端之間的安全性。IK728資訊網(wǎng)——每日最新資訊28at.com

數(shù)據(jù)變更、頁面重新渲染或重定向可以在一次網(wǎng)絡(luò)往返中完成,確保在客戶端上顯示正確的數(shù)據(jù),即使上游提供者的響應速度較慢。此外,可以組合和重用不同的操作,包括在同一個路由中使用多個不同的操作。IK728資訊網(wǎng)——每日最新資訊28at.com

緩存、重新驗證、重定向等

服務(wù)端操作深度集成到整個 App Router 模型中。你可以:IK728資訊網(wǎng)——每日最新資訊28at.com

  • 使用 revalidatePath() 或 revalidateTag() 可以重新驗證緩存的數(shù)據(jù)。
  • 使用redirect()重定向到不同的路由。
  • 使用cookies()設(shè)置和讀取cookie
  • 使用 useOptimistic() 處理樂觀 UI 更新
  • 使用 useFormState() 捕獲并顯示來自服務(wù)端的錯誤
  • 使用 useFormStatus() 在客戶端顯示加載狀態(tài)

部分預渲染(預覽)

Next.js 中正在開發(fā)的部分預渲染推出了預覽版,它是一種針對動態(tài)內(nèi)容的編譯器優(yōu)化,可以實現(xiàn)快速的初始靜態(tài)響應。IK728資訊網(wǎng)——每日最新資訊28at.com

部分預渲染建立在對服務(wù)端渲染(SSR)、靜態(tài)站點生成(SSG)和增量靜態(tài)重新驗證(ISR)進行了十年的研究和開發(fā)的基礎(chǔ)上。IK728資訊網(wǎng)——每日最新資訊28at.com

動機

目前存在過多的運行時、配置選項和渲染方法需要考慮。希望在享受靜態(tài)網(wǎng)頁的速度和可靠性的同時,也能支持完全動態(tài)、個性化的響應。不過,擁有出色的性能和個性化體驗不應以復雜性為代價。IK728資訊網(wǎng)——每日最新資訊28at.com

面臨的挑戰(zhàn)是創(chuàng)建更好的開發(fā)體驗,簡化現(xiàn)有模型,而無需引入新的需要學習的 API。雖然部分緩存服務(wù)端內(nèi)容的方法已經(jīng)存在,但這些方法仍然需要滿足旨在實現(xiàn)的開發(fā)者體驗和可組合性目標。IK728資訊網(wǎng)——每日最新資訊28at.com

部分預渲染不需要學習新的 API。IK728資訊網(wǎng)——每日最新資訊28at.com

建立在 React Suspense 之上

部分預渲染是由 Suspense 邊界定義的。以下是它的工作原理。考慮以下電子商務(wù)頁面:IK728資訊網(wǎng)——每日最新資訊28at.com

export default function Page() {  return (    <main>      <header>        <h1>My Store</h1>        <Suspense fallback={<CartSkeleton />}>          <ShoppingCart />        </Suspense>      </header>      <Banner />      <Suspense fallback={<ProductListSkeleton />}>        <Recommendations />      </Suspense>      <NewProducts />    </main>  );}

啟用部分預渲染后,該頁面將根據(jù) <Suspense /> 邊界生成靜態(tài)骨架,它包含了頁面的結(jié)構(gòu)和布局,但不包含動態(tài)內(nèi)容。React Suspense 的fallback也會被預渲染。IK728資訊網(wǎng)——每日最新資訊28at.com

然后,在靜態(tài)骨架中,Suspense 的fallback將被動態(tài)組件替換,例如讀取 cookie 來確定購物車內(nèi)容,或者根據(jù)用戶顯示橫幅廣告。IK728資訊網(wǎng)——每日最新資訊28at.com

當發(fā)出請求時,立即提供靜態(tài) HTML 骨架:IK728資訊網(wǎng)——每日最新資訊28at.com

<main>  <header>    <h1>My Store</h1>    <div class="cart-skeleton">      <!-- Hole -->    </div>  </header>  <div class="banner" />  <div class="product-list-skeleton">    <!-- Hole -->  </div>  <section class="new-products" /></main>

由于 <ShoppingCart /> 組件需要讀取cookie以查看用戶會話,因此該組件將作為同一HTTP請求的一部分進行流式傳輸,與靜態(tài)骨架一起加載,這樣就不需要額外的網(wǎng)絡(luò)往返。IK728資訊網(wǎng)——每日最新資訊28at.com

import { cookies } from 'next/headers'export default function ShoppingCart() {  const cookieStore = cookies()  const session = cookieStore.get('session')  return ...}

為了獲得最細粒度的靜態(tài)骨架,可能需要添加額外的 <Suspense /> 邊界。然而,如果今天已經(jīng)在使用 loading.js,那么這是一個隱式的 <Suspense /> 邊界,因此不需要更改即可生成靜態(tài)骨架。IK728資訊網(wǎng)——每日最新資訊28at.com

即將到來

部分預渲染正在積極開發(fā)中,將在即將發(fā)布的次要版本中分享更多更新。IK728資訊網(wǎng)——每日最新資訊28at.com

元數(shù)據(jù)改進

在頁面內(nèi)容從服務(wù)端流式傳輸之前,需要先向瀏覽器發(fā)送關(guān)于視口、顏色方案和主題等重要元數(shù)據(jù)。IK728資訊網(wǎng)——每日最新資訊28at.com

確保這些meta標簽與初始頁面內(nèi)容一起發(fā)送可以提供流暢的用戶體驗,防止由于更改主題顏色或視口變化而導致頁面閃爍或布局偏移。IK728資訊網(wǎng)——每日最新資訊28at.com

在 Next.js 14 中,將阻塞和非阻塞的元數(shù)據(jù)解耦。只有一小部分元數(shù)據(jù)選項是阻塞的,希望確保非阻塞的元數(shù)據(jù)不會阻止部分預渲染頁面提供靜態(tài)骨架。IK728資訊網(wǎng)——每日最新資訊28at.com

以下元數(shù)據(jù)選項現(xiàn)已棄用,并將在未來的主要版本中從元數(shù)據(jù)中刪除:IK728資訊網(wǎng)——每日最新資訊28at.com

  • viewport:設(shè)置視口的初始縮放和其他屬性。
  • colorScheme:設(shè)置視口的支持模式(亮/暗)。
  • themeColor: 設(shè)置視口周圍的瀏覽器界面應該呈現(xiàn)的顏色。

從 Next.js 14 開始,使用新的選項 viewport 和 generateViewport 來替換這些選項。所有其他元數(shù)據(jù)選項保持不變。IK728資訊網(wǎng)——每日最新資訊28at.com

Next.js Learn 課程

在 Next.js Learn 上發(fā)布了全新的免費課程。本課程教授:IK728資訊網(wǎng)——每日最新資訊28at.com

  • Next.js App Router
  • 樣式和 Tailwind CSS
  • 優(yōu)化字體和圖像
  • 創(chuàng)建布局和頁面
  • 在頁面之間導航
  • 設(shè)置 Postgres 數(shù)據(jù)庫
  • 使用服務(wù)端組件獲取數(shù)據(jù)
  • 靜態(tài)和動態(tài)渲染
  • 流媒體
  • 部分預渲染(可選)
  • 添加搜索和分頁
  • 數(shù)據(jù)變更
  • 錯誤處理
  • 改善無障礙環(huán)境
  • 添加身份驗證
  • 添加元數(shù)據(jù)

其他更新

  • [重大變更] 現(xiàn)在 Node.js 最低版本要求為 18.17。
  • [重大變更] 移除了 next-swc 構(gòu)建的 WASM 目標。
  • [重大變更] 放棄支持 @next/font,轉(zhuǎn)而支持 next/font。
  • [重大變更] 將 ImageResponse 導入從 next/server 更改為 next/og。
  • [重大變更] next export 命令已棄用,推薦使用 output: 'export'。
  • [棄用] next/image 的 onLoadingComplete 已棄用,推薦使用 onLoad。
  • [棄用] next/image 的 domains 已棄用,推薦使用 remotePatterns。
  • [功能] 可以啟用更詳細的關(guān)于獲取緩存的日志記錄。
  • [改進] 基本 create-next-app 應用的函數(shù)大小減小了 80%。

本文鏈接:http://www.www897cc.com/showinfo-26-15431-0.htmlNext.js 14 正式發(fā)布,更快、更強、更可靠!

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 你能說清楚For和Foreach有什么區(qū)別嗎?

下一篇: .Net JIT騷操逆向最新版Dngurad HVM

標簽:
  • 熱門焦點
  • 7月安卓手機性價比榜:努比亞+紅魔兩款新機入榜

    7月登場的新機有努比亞Z50S Pro和紅魔8S Pro,除了三星之外目前唯二的兩款搭載超頻版驍龍8Gen2處理器的產(chǎn)品,而且努比亞和紅魔也一貫有著不錯的性價比,所以在本次的性價比榜單
  • 印度登月最關(guān)鍵一步!月船三號今晚進入環(huán)月軌道

    8月5日消息,據(jù)印度官方消息,月船三號將于北京時間今晚21時30分左右開始近月制動進入環(huán)月軌道。這是該探測器能夠成功的最關(guān)鍵步驟之一,如果成功將開始圍
  • SpringBoot中使用Cache提升接口性能詳解

    環(huán)境:springboot2.3.12.RELEASE + JSR107 + Ehcache + JPASpring 框架從 3.1 開始,對 Spring 應用程序提供了透明式添加緩存的支持。和事務(wù)支持一樣,抽象緩存允許一致地使用各
  • 量化指標是與非:挽救被量化指標扼殺的技術(shù)團隊

    作者 | 劉新翠整理 | 徐杰承本文整理自快狗打車技術(shù)總監(jiān)劉新翠在WOT2023大會上的主題分享,更多精彩內(nèi)容及現(xiàn)場PPT,請關(guān)注51CTO技術(shù)棧公眾號,發(fā)消息【W(wǎng)OT2023PPT】即可直接領(lǐng)取
  • .NET 程序的 GDI 句柄泄露的再反思

    一、背景1. 講故事上個月我寫過一篇 如何洞察 C# 程序的 GDI 句柄泄露 文章,當時用的是 GDIView + WinDbg 把問題搞定,前者用來定位泄露資源,后者用來定位泄露代碼,后面有朋友反
  • 三分鐘白話RocketMQ系列—— 如何發(fā)送消息

    我們知道RocketMQ主要分為消息 生產(chǎn)、存儲(消息堆積)、消費 三大塊領(lǐng)域。那接下來,我們白話一下,RocketMQ是如何發(fā)送消息的,揭秘消息生產(chǎn)全過程。注意,如果白話中不小心提到相關(guān)代
  • 每天一道面試題-CPU偽共享

    前言:了不起:又到了每天一到面試題的時候了!學弟,最近學習的怎么樣啊 了不起學弟:最近學習的還不錯,每天都在學習,每天都在進步! 了不起:那你最近學習的什么呢? 了不起學弟:最近在學習C
  • 朋友圈可以修改可見范圍了 蘋果用戶可率先體驗

    近日,iOS用戶迎來微信8.0.27正式版更新,除了可更換二維碼背景外,還新增了多項實用功能。在新版微信中,朋友圈終于可以修改可見范圍,簡單來說就是已發(fā)布的朋友圈
  • 最薄的14英寸游戲筆記本電腦 Alienware X14已可以購買

    2022年1月份在國際消費電子展(CES2022)上首次亮相的Alienware新品——Alienware X14現(xiàn)在已經(jīng)可以購買了,這款筆記本電腦被譽為世界上最薄的 14 英寸游戲筆
Top 主站蜘蛛池模板: 建湖县| 石河子市| 澎湖县| 濮阳县| 古田县| 茂名市| 临夏县| 乡城县| 广灵县| 交口县| 武义县| 通河县| 西峡县| 绵竹市| 荣成市| 灌云县| 太和县| 巴彦县| 闻喜县| 开阳县| 株洲县| 敖汉旗| 武城县| 元氏县| 乐陵市| 罗平县| 阜宁县| 漯河市| 南宁市| 榆林市| 虹口区| 柳州市| 湟源县| 建湖县| 德清县| 广昌县| 息烽县| 临清市| 桦南县| 通榆县| 安溪县|