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

當(dāng)前位置:首頁 > 科技  > 軟件

Remix 2.0 正式發(fā)布,現(xiàn)代化全棧Web框架!

來源: 責(zé)編: 時(shí)間:2023-09-18 21:40:39 328觀看
導(dǎo)讀9 月 16 日,全棧 Web 框架 Remix 正式發(fā)布了 2.0 版本,Remix 團(tuán)隊(duì)在發(fā)布 1.0 版本后經(jīng)過近 2 年的持續(xù)努力,發(fā)布了 19 個(gè)次要版本、100 多個(gè)補(bǔ)丁版本,并解決了數(shù)千個(gè)問題和拉取請求,終于迎來了第二個(gè)主要版本!Remix 具有以

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

9 月 16 日,全棧 Web 框架 Remix 正式發(fā)布了 2.0 版本,Remix 團(tuán)隊(duì)在發(fā)布 1.0 版本后經(jīng)過近 2 年的持續(xù)努力,發(fā)布了 19 個(gè)次要版本、100 多個(gè)補(bǔ)丁版本,并解決了數(shù)千個(gè)問題和拉取請求,終于迎來了第二個(gè)主要版本!Rsu28資訊網(wǎng)——每日最新資訊28at.com

Remix 具有以下特性:Rsu28資訊網(wǎng)——每日最新資訊28at.com

  • 追求速度、用戶體驗(yàn)(UX),支持任何 SSR/SSG 等
  • 基于 Web 基礎(chǔ)技術(shù),如 HTML/CSS 與 HTTP 以及 Web Fecth API,在絕大部分情況可以不依賴于 JavaScript 運(yùn)行,所以可以運(yùn)行在任何環(huán)境下,如 Web Browser、Cloudflare Workers、Serverless 或者 Node.js 等
  • 客戶端與服務(wù)端一致的開發(fā)體驗(yàn),客戶端代碼與服務(wù)端代碼寫在一個(gè)文件里,無縫進(jìn)行數(shù)據(jù)交互,同時(shí)基于 TypeScript,類型定義可以跨客戶端與服務(wù)端共用
  • 內(nèi)置文件即路由、動態(tài)路由、嵌套路由、資源路由等
  • 去掉 Loading、骨架屏等任何加載狀態(tài),頁面中所有資源都可以預(yù)加載(Prefetch),頁面幾乎可以立即加載
  • 告別以往瀑布式(Waterfall)的數(shù)據(jù)獲取方式,數(shù)據(jù)獲取在服務(wù)端并行(Parallel)獲取,生成完整 HTML 文檔,類似 React 的并發(fā)特性
  • 提供開發(fā)網(wǎng)頁需要所有狀態(tài),開箱即用;提供所有需要使用的組件,包括   <Links> 、<Link>、 <Meta> 、<Form> 、<Script/> ,用于處理元信息、腳本、CSS、路由和表單相關(guān)的內(nèi)容
  • 內(nèi)置錯(cuò)誤處理,針對非預(yù)期錯(cuò)誤處理的 <ErrorBoundary> 和開發(fā)者拋出錯(cuò)誤處理的 <CatchBoundary>

Remix 是一個(gè)由 React Router 開發(fā)團(tuán)隊(duì)所開發(fā)的基于 React 和 TypeScript 的全棧框架。2021 年 11 月,Remix 正式開源,至今已在 Github 上獲得了 24.6k star。Remix 正式開源時(shí),引發(fā)了前端圈不小的關(guān)注,其被普遍認(rèn)為是 Next.js 的強(qiáng)勁對手,那時(shí)隔兩年,它和 Next.js 之間的“競爭”怎么樣了呢?Rsu28資訊網(wǎng)——每日最新資訊28at.com

目前,Next.js 擁有 112k star,是 Remix 的近 5 倍。Next.js 周下載量 279 萬,而 Remix 僅有 1.4 萬,Next.js 是 Remix 的近 200 倍。可見,Remix 并沒有像大家預(yù)料的那樣,成為 Next.js 的有力競爭對手,在開發(fā)者社區(qū)中只有較小的市場份額。盡管如此,Remix 仍然吸引了一些開發(fā)者,并且在特定領(lǐng)域或項(xiàng)目中有其優(yōu)勢和適用性。Rsu28資訊網(wǎng)——每日最新資訊28at.com

下面就來看看 Remix 2.0 都有哪些更新!Rsu28資訊網(wǎng)——每日最新資訊28at.com

v1.0 以來的更新

  • v1.8和v1.10中,將 Remix與React Router v6進(jìn)行了對齊。當(dāng)開始開發(fā)Remix時(shí),承諾它將使React Router變得更好。這個(gè)版本真正實(shí)現(xiàn)了這一承諾,并將兩個(gè)庫都對齊到使用相同的底層依賴。
  • 在v1.11中,發(fā)布了"promises over the wire",即延遲加載模塊。現(xiàn)在,如果真的想在Remix應(yīng)用中添加 loading 圖標(biāo),可以這么做了!
  • 在v1.11中,添加了"flat"路由,簡化了使用嵌套布局而不需要嵌套目錄的操作,這成為v2版本的默認(rèn)設(shè)置。
  • 在v1.13和v1.16中,改進(jìn)了Remix對各種CSS策略的支持,包括PostCSS、CSS模塊、Vanilla Extract 和CSS副作用(全局)導(dǎo)入。
  • 在v1.14和v1.18中,發(fā)布了一個(gè)新的開發(fā)服務(wù)器,支持熱更新(HMR)和熱數(shù)據(jù)重載(HDR)。這個(gè)新的開發(fā)服務(wù)器成為v2版本的默認(rèn)設(shè)置。
  • 在v2版本中,最重要的亮點(diǎn)之一是全新的create-remix命令行工具體驗(yàn)。

v2.0 的更新內(nèi)容

重大變化

升級的依賴要求

Remix v2已經(jīng)升級了對React和Node的最低版本支持,并正式支持以下版本:Rsu28資訊網(wǎng)——每日最新資訊28at.com

  • React 18
  • Node 18 或更高版本

移除未來標(biāo)志

以下未來標(biāo)志已被移除,并且它們的行為現(xiàn)在是默認(rèn)的,現(xiàn)在可以從remix.config.js文件中刪除這些設(shè)置。Rsu28資訊網(wǎng)——每日最新資訊28at.com

  • v2_dev,新的開發(fā)服務(wù)器,具有HMR + HDR,如果在future.v2_dev中有配置而不僅僅是布爾值(例如,future.v2_dev.port),可以將它們提升到remix.config.js中的根dev對象中。
  • v2_errorBoundary,移除了CatchBoundary,改為使用單個(gè)ErrorBoundary
  • v2_headers,修改了嵌套路由場景中的頭部邏輯
  • v2_meta,修改了meta()的返回格式
  • v2_normalizeFormMethod,將formMethod規(guī)范化為大寫
  • v2_routeConvention,現(xiàn)在默認(rèn)情況下,路由使用扁平化路由約定

重大變更/API 刪除

下面列出了 Remix v1 中具有棄用警告的其他重大更改/API 刪除。如果使用的是最新1.19.3版本且沒有任何控制臺警告,那么可能可以繼續(xù)執(zhí)行所有這些操作!Rsu28資訊網(wǎng)——每日最新資訊28at.com

(1)有破壞性更改/API移除Rsu28資訊網(wǎng)——每日最新資訊28at.com

  • remix.config.js
  • browserBuildDirectory重命名為assetsBuildDirectory
  • 刪除devServerBroadcastDelay
  • devServerPort重命名為dev.port
  • 如果在1.x版本中選擇此選項(xiàng),則配置標(biāo)記將是future.v2_dev.port,但在穩(wěn)定的2.x版本中,它將是dev.port
  • 將默認(rèn)的serverModuleFormatcjs更改為esm
  • 刪除serverBuildTarget
  • serverBuildDirectory更改為serverBuildPath
  • 默認(rèn)情況下不再在服務(wù)器上對Node內(nèi)置模塊進(jìn)行polyfill,必須通過serverNodeBuiltinsPolyfill選擇加入polyfill
  • @remix-run/react
  • 刪除useTransitionRsu28資訊網(wǎng)——每日最新資訊28at.com

  • 刪除fetcher.type并壓縮fetcher.submissionRsu28資訊網(wǎng)——每日最新資訊28at.com

  • <fetcher.Form method="get">現(xiàn)在更準(zhǔn)確地被歸類為state:“l(fā)oading”,而不是state:“submitting”,以更好地與底層的GET請求保持一致Rsu28資訊網(wǎng)——每日最新資訊28at.com

  • 要求camelCased版本的imagesrcset/imagesizesRsu28資訊網(wǎng)——每日最新資訊28at.com

(2)沒有棄用警告Rsu28資訊網(wǎng)——每日最新資訊28at.com

此版本沒能在每個(gè)破壞性更改或API移除上都收到廢棄警告。以下是可能需要查看的剩余變更列表,以升級到v2:Rsu28資訊網(wǎng)——每日最新資訊28at.com

  • remix.config.js
  • Node內(nèi)置模塊不再默認(rèn)在瀏覽器中進(jìn)行polyfill,可以通過browserNodeBuiltinsPolyfill選項(xiàng)選擇加入polyfill
  • 如果存在配置文件,則PostCSS/Tailwind將默認(rèn)啟用,可以通過postcss和tailwind標(biāo)志禁用此功能
  • @remix-run/cloudflare
  • 刪除createCloudflareKVSessionStorage方法Rsu28資訊網(wǎng)——每日最新資訊28at.com

  • 不再支持@cloudflare/workers-types v2和v3Rsu28資訊網(wǎng)——每日最新資訊28at.com

  • @remix-run/devRsu28資訊網(wǎng)——每日最新資訊28at.com

  • 刪除REMIX_DEV_HTTP_ORIGIN,增加REMIX_DEV_ORIGINRsu28資訊網(wǎng)——每日最新資訊28at.com

  • 刪除REMIX_DEV_SERVER_WS_PORT,增加dev.port--portRsu28資訊網(wǎng)——每日最新資訊28at.com

  • 刪除--no-restart/restart標(biāo)志,增加--manual/manualRsu28資訊網(wǎng)——每日最新資訊28at.com

  • 刪除--scheme/scheme--host/host,增加REMIX_DEV_ORIGINRsu28資訊網(wǎng)——每日最新資訊28at.com

  • 刪除codemod命令Rsu28資訊網(wǎng)——每日最新資訊28at.com

  • @remix-run/eslint-configRsu28資訊網(wǎng)——每日最新資訊28at.com

  • 刪除@remix-run/eslint-config/jest配置Rsu28資訊網(wǎng)——每日最新資訊28at.com

  • 刪除魔法imports的ESLint警告Rsu28資訊網(wǎng)——每日最新資訊28at.com

  • @remix-run/netlifyRsu28資訊網(wǎng)——每日最新資訊28at.com

  • @remix-run/netlify適配器已被刪除,推薦使用Netlify官方適配器Rsu28資訊網(wǎng)——每日最新資訊28at.com

  • @remix-run/nodeRsu28資訊網(wǎng)——每日最新資訊28at.com

  • 默認(rèn)不再對fetch進(jìn)行polyfill,應(yīng)用需要調(diào)用installGlobals()來安裝polyfillsRsu28資訊網(wǎng)——每日最新資訊28at.com

  • 不再從@remix-run/node導(dǎo)出fetch和相關(guān) API,應(yīng)用應(yīng)使用全局命名空間中的版本Rsu28資訊網(wǎng)——每日最新資訊28at.com

  • 應(yīng)用需要調(diào)用sourceMapSupport.install()來設(shè)置源映射支持Rsu28資訊網(wǎng)——每日最新資訊28at.com

  • @remix-run/reactRsu28資訊網(wǎng)——每日最新資訊28at.com

  • 刪除unstable_shouldReload,增加shouldRevalidateRsu28資訊網(wǎng)——每日最新資訊28at.com

  • @remix-run/serveRsu28資訊網(wǎng)——每日最新資訊28at.com

  • 如果3000端口被占用且未指定PORT,則remix-serve將選擇一個(gè)可用的端口Rsu28資訊網(wǎng)——每日最新資訊28at.com

  • 集成手動模式Rsu28資訊網(wǎng)——每日最新資訊28at.com

  • 刪除未記錄的createApp Node APIRsu28資訊網(wǎng)——每日最新資訊28at.com

  • remix-serve中保留動態(tài)imports以供外部bundle使用Rsu28資訊網(wǎng)——每日最新資訊28at.com

  • @remix-run/vercelRsu28資訊網(wǎng)——每日最新資訊28at.com

  • @remix-run/vercel適配器已被刪除,推薦使用Vercel官方提供的功能Rsu28資訊網(wǎng)——每日最新資訊28at.com

  • create-remixRsu28資訊網(wǎng)——每日最新資訊28at.com

  • 停止傳遞isTypeScriptremix.init腳本Rsu28資訊網(wǎng)——每日最新資訊28at.com

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

  • 刪除魔法 exportsRsu28資訊網(wǎng)——每日最新資訊28at.com

(3)破壞類型變化Rsu28資訊網(wǎng)——每日最新資訊28at.com

  • 從 future.v2_meta 類型中刪除了 V2_ 前綴,因?yàn)樗鼈儸F(xiàn)在是默認(rèn)行為。
  • V2_MetaArgs -> MetaArgs
  • V2_MetaDescriptor -> MetaDescriptor
  • V2_MetaFunction -> MetaFunction
  • V2_MetaMatch -> MetaMatch
  • V2_MetaMatches -> MetaMatches
  • V2_ServerRuntimeMetaArgs -> ServerRuntimeMetaArgs
  • V2_ServerRuntimeMetaDescriptor -> ServerRuntimeMetaDescriptor
  • V2_ServerRuntimeMetaFunction -> ServerRuntimeMetaFunction
  • V2_ServerRuntimeMetaMatch -> ServerRuntimeMetaMatch
  • V2_ServerRuntimeMetaMatches -> ServerRuntimeMetaMatches
  • 以下類型已進(jìn)行調(diào)整,更偏向于使用unknown而不是any,并與底層的React Router類型保持一致:
  • useMatches()的返回類型從RouteMatch改名為UIMatchRsu28資訊網(wǎng)——每日最新資訊28at.com

  • LoaderArgs/ActionArgs改名為LoaderFunctionArgs/ActionFunctionArgsRsu28資訊網(wǎng)——每日最新資訊28at.com

  • AppData的類型從any改為unknownRsu28資訊網(wǎng)——每日最新資訊28at.com

  • Location["state"]useLocation.state)的類型從any改為unknownRsu28資訊網(wǎng)——每日最新資訊28at.com

  • UIMatch["data"]useMatches()[i].data)的類型從any改為unknownRsu28資訊網(wǎng)——每日最新資訊28at.com

  • UIMatch["handle"]useMatches()[i].handle)的類型從{ [k: string]: any }改為unknownRsu28資訊網(wǎng)——每日最新資訊28at.com

  • Fetcher["data"]useFetcher().data)的類型從any改為unknownRsu28資訊網(wǎng)——每日最新資訊28at.com

  • MetaMatch.handle(在meta()函數(shù)中使用)的類型從any改為unknownRsu28資訊網(wǎng)——每日最新資訊28at.com

  • AppData/RouteHandle不再導(dǎo)出,因?yàn)樗鼈冎皇?/span>unknown的別名Rsu28資訊網(wǎng)——每日最新資訊28at.com

新增功能

  • 新的create-remix命令行界面工具
  • 最顯著的改變是,不再使用下拉菜單選擇模板/堆棧,而是使用--template參數(shù)和不斷增長的可用模板列表。
  • 新增--overwrite參數(shù)
  • 支持bun包管理器
  • 通過build.mode檢測構(gòu)建模式
  • 支持通過serverNodeBuiltinsPolyfill.globals/browserNodeBuiltinsPolyfill.globals來對Node全局對象進(jìn)行polyfill
  • 新的redirectDocument實(shí)用工具,通過重新加載文檔實(shí)現(xiàn)重定向
  • meta參數(shù)中添加error,以便可以渲染錯(cuò)誤標(biāo)題等
  • unstable_createRemixStub現(xiàn)在支持在stubbed Remix路由上添加meta/links函數(shù)
  • unstable_createRemixStub不再支持在路由上使用element/errorElement屬性。必須使用Component/ErrorBoundary與從Remix路由模塊導(dǎo)出的內(nèi)容匹配。

其他更新

  • Remix現(xiàn)在在內(nèi)部使用React Router的route.lazy方法在導(dǎo)航時(shí)加載路由模塊。
  • 刪除了@remix-run/node中的atob/btoa polyfills,改用內(nèi)置版本。
  • @remix-run/dev包與@remix-run/css-bundle包的內(nèi)容解耦。
  • 現(xiàn)在,@remix-run/css-bundle包的內(nèi)容完全由Remix編譯器管理。盡管仍然建議Remix依賴項(xiàng)共享相同的版本,但這個(gè)變化確保在升級@remix-run/dev而不升級@remix-run/css-bundle時(shí)沒有運(yùn)行時(shí)錯(cuò)誤。
  • remix-serve現(xiàn)在將選擇一個(gè)空閑的端口(如果3000端口被占用)。
  • 如果設(shè)置了PORT環(huán)境變量,remix-serve將使用該端口。
  • 否則,remix-serve將選擇一個(gè)空閑的端口(除非3000端口已被占用)。
  • 更新的依賴項(xiàng):
  • react-router-dom@6.16.0Rsu28資訊網(wǎng)——每日最新資訊28at.com

  • @remix-run/router@1.9.0Rsu28資訊網(wǎng)——每日最新資訊28at.com

  • @remix-run/web-fetch@4.4.0Rsu28資訊網(wǎng)——每日最新資訊28at.com

  • @remix-run/web-file@3.1.0Rsu28資訊網(wǎng)——每日最新資訊28at.com

  • @remix-run/web-stream@1.1.0Rsu28資訊網(wǎng)——每日最新資訊28at.com

React Server Components?

Remix 對于 React Server Components(RSC)的支持計(jì)劃是積極的。他們希望在Remix v3中添加對RSC的支持,并希望能夠展示這項(xiàng)技術(shù)在多個(gè)框架中的能力。Rsu28資訊網(wǎng)——每日最新資訊28at.com

RSC是一個(gè)有趣且強(qiáng)大的功能,但是 Remix v2 是基于當(dāng)前穩(wěn)定的React特性構(gòu)建的,因此 RSC 在 Remix v2 中尚未包含。一旦RSC穩(wěn)定下來,Remix 將會支持它。Rsu28資訊網(wǎng)——每日最新資訊28at.com

然而,與之前支持的其他React特性相比,“支持RSC”需要更深入的集成。RSC的異步組件與Remix的加載器和組件結(jié)合得非常相似,并且Remix在v3中決定摒棄使用第三方庫useLoaderData,因此在數(shù)據(jù)加載方面可能會有所不同。他們希望開發(fā)者只需要將現(xiàn)有的加載器代碼遷移到新的異步組件中,但需要注意數(shù)據(jù)依賴的瀑布效應(yīng)。Rsu28資訊網(wǎng)——每日最新資訊28at.com

Remix團(tuán)隊(duì)在今年早些時(shí)候的Remix Conf上與React核心團(tuán)隊(duì)的成員舉辦了一個(gè)討論會,討論了RSC以及如何共同推進(jìn)這項(xiàng)技術(shù)的穩(wěn)定發(fā)布。他們以各種方式幫助準(zhǔn)備RSC,并希望能夠成功地集成它到Remix中。Rsu28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-10428-0.htmlRemix 2.0 正式發(fā)布,現(xiàn)代化全棧Web框架!

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

上一篇: C++ extern的用法詳細(xì)解析

下一篇: 一文搞懂Python中私有屬性和私有方法使用區(qū)別

標(biāo)簽:
  • 熱門焦點(diǎn)
  • 6月安卓手機(jī)性價(jià)比榜:Note 12 Turbo斷層式碾壓

    6月份有一個(gè)618,雖然這是京東周年慶的日子,但別的電商也都不約而同的跟進(jìn)了,反正促銷沒壞處,廠商和用戶都能滿意。618期間一些產(chǎn)品也出現(xiàn)了歷史低價(jià),那么各個(gè)價(jià)位段的產(chǎn)品性價(jià)比
  • 5月iOS設(shè)備好評榜:iPhone 14僅排第43?

    來到新的一月,安兔兔的各個(gè)榜單又重新匯總了數(shù)據(jù),像安卓陣營的榜單都有著比較大的變動,不過iOS由于設(shè)備的更新?lián)Q代并沒有那么快,所以相對來說變化并不大,特別是iOS好評榜,老款設(shè)
  • JavaScript 混淆及反混淆代碼工具

    介紹在我們開始學(xué)習(xí)反混淆之前,我們首先要了解一下代碼混淆。如果不了解代碼是如何混淆的,我們可能無法成功對代碼進(jìn)行反混淆,尤其是使用自定義混淆器對其進(jìn)行混淆時(shí)。什么是混
  • K6:面向開發(fā)人員的現(xiàn)代負(fù)載測試工具

    K6 是一個(gè)開源負(fù)載測試工具,可以輕松編寫、運(yùn)行和分析性能測試。它建立在 Go 和 JavaScript 之上,它被設(shè)計(jì)為功能強(qiáng)大、可擴(kuò)展且易于使用。k6 可用于測試各種應(yīng)用程序,包括 Web
  • 只需五步,使用start.spring.io快速入門Spring編程

    步驟1打開https://start.spring.io/,按照屏幕截圖中的內(nèi)容創(chuàng)建項(xiàng)目,添加 Spring Web 依賴項(xiàng),并單擊“生成”按鈕下載 .zip 文件,為下一步做準(zhǔn)備。請?jiān)谶M(jìn)入步驟2之前進(jìn)行解壓。圖
  • 騰訊VS網(wǎng)易,最卷游戲暑期檔,誰能笑到最后?

    作者:無銹缽來源:財(cái)經(jīng)無忌7月16日晚,上海1862時(shí)尚藝術(shù)中心。伴隨著幻象的精準(zhǔn)命中,碩大的熒幕之上,比分被定格在了14:12,被寄予厚望的EDG戰(zhàn)隊(duì)以絕對的優(yōu)勢戰(zhàn)勝了BLG戰(zhàn)隊(duì),拿下了總決
  • “又被陳思誠騙了”

    作者|張思齊 出品|眾面(ID:ZhongMian_ZM)如今的國產(chǎn)懸疑電影,成了陳思誠的天下。最近大爆電影《消失的她》票房突破30億斷層奪魁暑期檔,陳思誠再度風(fēng)頭無兩。你可以說陳思誠的
  • 滴滴違法違規(guī)被罰80.26億 共存在16項(xiàng)違法事實(shí)

    滴滴違法違規(guī)被罰80.26億 存在16項(xiàng)違法事實(shí)開始于2121年7月,歷經(jīng)一年時(shí)間,網(wǎng)絡(luò)安全審查辦公室對“滴滴出行”網(wǎng)絡(luò)安全審查終于有了一個(gè)暫時(shí)的結(jié)束。據(jù)“網(wǎng)信
  • 英特爾Xe HPG游戲顯卡:擁有512EU,單風(fēng)扇版本

    據(jù)10 月 30 日外媒 TheVerge 消息報(bào)道,英特爾 Xe HPG Arc Alchemist 的正面實(shí)被曝光,不僅擁有 512 EU 版顯卡,還擁有 128EU 的單風(fēng)扇版本。另外,這款顯卡 PCB
Top 主站蜘蛛池模板: 来凤县| 安丘市| SHOW| 和平区| 山东| 石门县| 大冶市| 衡阳县| 巨鹿县| 西盟| 渝中区| 大邑县| 扎兰屯市| 和静县| 沂水县| 宣化县| 彭山县| 奈曼旗| 安丘市| 元谋县| 公主岭市| 龙山县| 金昌市| 四子王旗| 忻城县| 高碑店市| 苍南县| 东阿县| 永安市| 桓台县| 永德县| 宜兰市| 奇台县| 蒙山县| 合阳县| 临清市| 琼中| 银川市| 泸定县| 京山县| 涿鹿县|