国产精品嫩草99av在线_一区在线视频观看_欧美高清一区_欧美 日韩 国产 一区_99精品欧美一区二区三区_久久大香伊蕉在人线观看热2_一色屋精品视频在线观看网站_在线亚洲国产精品网站_亚洲区一区二区三区_你懂的视频一区二区

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

Remix 2.0 正式發布,現代化全棧Web框架!

來源: 責編: 時間:2023-09-18 21:40:39 421觀看
導讀9 月 16 日,全棧 Web 框架 Remix 正式發布了 2.0 版本,Remix 團隊在發布 1.0 版本后經過近 2 年的持續努力,發布了 19 個次要版本、100 多個補丁版本,并解決了數千個問題和拉取請求,終于迎來了第二個主要版本!Remix 具有以

F0q28資訊網——每日最新資訊28at.com

9 月 16 日,全棧 Web 框架 Remix 正式發布了 2.0 版本,Remix 團隊在發布 1.0 版本后經過近 2 年的持續努力,發布了 19 個次要版本、100 多個補丁版本,并解決了數千個問題和拉取請求,終于迎來了第二個主要版本!F0q28資訊網——每日最新資訊28at.com

Remix 具有以下特性:F0q28資訊網——每日最新資訊28at.com

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

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

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

下面就來看看 Remix 2.0 都有哪些更新!F0q28資訊網——每日最新資訊28at.com

v1.0 以來的更新

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

v2.0 的更新內容

重大變化

升級的依賴要求

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

  • React 18
  • Node 18 或更高版本

移除未來標志

以下未來標志已被移除,并且它們的行為現在是默認的,現在可以從remix.config.js文件中刪除這些設置。F0q28資訊網——每日最新資訊28at.com

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

重大變更/API 刪除

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

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

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

  • 刪除fetcher.type并壓縮fetcher.submissionF0q28資訊網——每日最新資訊28at.com

  • <fetcher.Form method="get">現在更準確地被歸類為state:“loading”,而不是state:“submitting”,以更好地與底層的GET請求保持一致F0q28資訊網——每日最新資訊28at.com

  • 要求camelCased版本的imagesrcset/imagesizesF0q28資訊網——每日最新資訊28at.com

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

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

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

  • 不再支持@cloudflare/workers-types v2和v3F0q28資訊網——每日最新資訊28at.com

  • @remix-run/devF0q28資訊網——每日最新資訊28at.com

  • 刪除REMIX_DEV_HTTP_ORIGIN,增加REMIX_DEV_ORIGINF0q28資訊網——每日最新資訊28at.com

  • 刪除REMIX_DEV_SERVER_WS_PORT,增加dev.port--portF0q28資訊網——每日最新資訊28at.com

  • 刪除--no-restart/restart標志,增加--manual/manualF0q28資訊網——每日最新資訊28at.com

  • 刪除--scheme/scheme--host/host,增加REMIX_DEV_ORIGINF0q28資訊網——每日最新資訊28at.com

  • 刪除codemod命令F0q28資訊網——每日最新資訊28at.com

  • @remix-run/eslint-configF0q28資訊網——每日最新資訊28at.com

  • 刪除@remix-run/eslint-config/jest配置F0q28資訊網——每日最新資訊28at.com

  • 刪除魔法imports的ESLint警告F0q28資訊網——每日最新資訊28at.com

  • @remix-run/netlifyF0q28資訊網——每日最新資訊28at.com

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

  • @remix-run/nodeF0q28資訊網——每日最新資訊28at.com

  • 默認不再對fetch進行polyfill,應用需要調用installGlobals()來安裝polyfillsF0q28資訊網——每日最新資訊28at.com

  • 不再從@remix-run/node導出fetch和相關 API,應用應使用全局命名空間中的版本F0q28資訊網——每日最新資訊28at.com

  • 應用需要調用sourceMapSupport.install()來設置源映射支持F0q28資訊網——每日最新資訊28at.com

  • @remix-run/reactF0q28資訊網——每日最新資訊28at.com

  • 刪除unstable_shouldReload,增加shouldRevalidateF0q28資訊網——每日最新資訊28at.com

  • @remix-run/serveF0q28資訊網——每日最新資訊28at.com

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

  • 集成手動模式F0q28資訊網——每日最新資訊28at.com

  • 刪除未記錄的createApp Node APIF0q28資訊網——每日最新資訊28at.com

  • remix-serve中保留動態imports以供外部bundle使用F0q28資訊網——每日最新資訊28at.com

  • @remix-run/vercelF0q28資訊網——每日最新資訊28at.com

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

  • create-remixF0q28資訊網——每日最新資訊28at.com

  • 停止傳遞isTypeScriptremix.init腳本F0q28資訊網——每日最新資訊28at.com

  • remixF0q28資訊網——每日最新資訊28at.com

  • 刪除魔法 exportsF0q28資訊網——每日最新資訊28at.com

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

  • 從 future.v2_meta 類型中刪除了 V2_ 前綴,因為它們現在是默認行為。
  • 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
  • 以下類型已進行調整,更偏向于使用unknown而不是any,并與底層的React Router類型保持一致:
  • useMatches()的返回類型從RouteMatch改名為UIMatchF0q28資訊網——每日最新資訊28at.com

  • LoaderArgs/ActionArgs改名為LoaderFunctionArgs/ActionFunctionArgsF0q28資訊網——每日最新資訊28at.com

  • AppData的類型從any改為unknownF0q28資訊網——每日最新資訊28at.com

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

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

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

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

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

  • AppData/RouteHandle不再導出,因為它們只是unknown的別名F0q28資訊網——每日最新資訊28at.com

新增功能

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

其他更新

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

  • @remix-run/router@1.9.0F0q28資訊網——每日最新資訊28at.com

  • @remix-run/web-fetch@4.4.0F0q28資訊網——每日最新資訊28at.com

  • @remix-run/web-file@3.1.0F0q28資訊網——每日最新資訊28at.com

  • @remix-run/web-stream@1.1.0F0q28資訊網——每日最新資訊28at.com

React Server Components?

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

RSC是一個有趣且強大的功能,但是 Remix v2 是基于當前穩定的React特性構建的,因此 RSC 在 Remix v2 中尚未包含。一旦RSC穩定下來,Remix 將會支持它。F0q28資訊網——每日最新資訊28at.com

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

Remix團隊在今年早些時候的Remix Conf上與React核心團隊的成員舉辦了一個討論會,討論了RSC以及如何共同推進這項技術的穩定發布。他們以各種方式幫助準備RSC,并希望能夠成功地集成它到Remix中。F0q28資訊網——每日最新資訊28at.com

本文鏈接:http://m.rrqrq.com/showinfo-26-10428-0.htmlRemix 2.0 正式發布,現代化全棧Web框架!

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

上一篇: C++ extern的用法詳細解析

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

標簽:
  • 熱門焦點
Top 国产精品嫩草99av在线_一区在线视频观看_欧美高清一区_欧美 日韩 国产 一区_99精品欧美一区二区三区_久久大香伊蕉在人线观看热2_一色屋精品视频在线观看网站_在线亚洲国产精品网站_亚洲区一区二区三区_你懂的视频一区二区
国产欧美日韩伦理| 亚洲黄色成人久久久| 免费av成人在线| 图片区小说区区亚洲影院| 亚洲精品写真福利| 亚洲男女一区二区三区| 国产精品成人一区二区艾草| 欧美激情中文字幕| 最新成人av在线| 亚洲国产一区二区三区青草影视 | 丝袜亚洲另类欧美| 日产欧产美韩系列久久99| 精品一区二区在线视频| 国产乱码精品1区2区3区| 精品系列免费在线观看| 成人在线综合网站| 欧美1区2区3区| 国产精品扒开腿做爽爽爽软件| 久久亚洲视频| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 欧美视频导航| 亚洲欧美日韩精品综合在线观看| 久久久久国产精品一区三寸| 欧美日韩一区二区三区免费看| 日韩欧美一级二级三级久久久| 日韩午夜精品视频| 国产精品你懂的在线| 性做久久久久久免费观看欧美| 久久精品国产精品青草| 成人av午夜电影| 99成人在线| 久久午夜免费电影| 久久综合视频网| 亚洲一区二区在线观看视频| 久久国产生活片100| 欧美在线二区| 久久精品1区| 精品国产凹凸成av人网站| 一区二区在线观看免费视频播放| 蜜臀a∨国产成人精品| 91香蕉视频污| 美女久久一区| 国产亚洲综合在线| 日本视频一区二区三区| 欧美尤物一区| 欧美性淫爽ww久久久久无| 国产欧美一区二区精品秋霞影院| 午夜久久电影网| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 国产亚洲女人久久久久毛片| 亚洲一区二区av电影| 国产成人免费网站| 一本色道久久综合亚洲精品不| 欧美放荡的少妇| 1000精品久久久久久久久| 国产麻豆9l精品三级站| 亚洲精品1区2区| 日韩无一区二区| 日本美女一区二区三区| 国产成人免费视频| 国产精品日本一区二区| 久久久久九九视频| 精品写真视频在线观看| 亚洲在线播放| 国产欧美一区二区精品性色超碰 | 在线一区二区三区四区五区| 国产欧美精品在线观看| 国产精品一区二区91| 久久久噜噜噜| 亚洲精品国久久99热| 99精品热视频| 91麻豆精品国产91久久久资源速度| 亚洲综合视频在线| 欧美在线观看天堂一区二区三区| 69久久夜色精品国产69蝌蚪网| 亚洲成av人片在线观看| 在线播放豆国产99亚洲| 国产视频911| 99热99精品| 337p亚洲精品色噜噜噜| 麻豆精品一区二区| 色欧美片视频在线观看在线视频| 亚洲精品欧美在线| 伊人成人网在线看| 欧美国产亚洲另类动漫| 日韩欧美国产成人一区二区| 久久成人精品无人区| 在线观看免费一区| 手机精品视频在线观看| 国产精品毛片| 亚洲黄色免费网站| 国产亚洲欧美一区二区| 亚洲人一二三区| 亚洲精品国产日韩| 亚洲激情欧美激情| 国产伦精品一区二区三区视频黑人 | 欧美一级淫片007| 国产成人福利片| 日韩欧美在线观看一区二区三区| 国产成人综合在线观看| 欧美精品在线一区二区| 韩国三级在线一区| 777欧美精品| 福利电影一区二区| 日韩精品一区二| 91免费观看视频在线| 欧美极品xxx| 99综合影院在线| 国产日产亚洲精品系列| 激情综合久久| 亚洲国产一区二区三区| 欧洲生活片亚洲生活在线观看| 日本欧美一区二区| 欧美精品在线一区二区| 99视频一区二区| 中文字幕免费不卡| 国产精品人人爽人人做我的可爱| 亚洲bt欧美bt精品| 欧美日韩高清一区二区三区| 波多野结衣91| 国产精品久久久久久户外露出| 国产欧美日韩亚洲| 久久国产精品免费| 久久久久久99久久久精品网站| 一区久久精品| 日韩中文字幕区一区有砖一区| 欧美色区777第一页| av欧美精品.com| 亚洲欧美国产高清| 在线国产电影不卡| 成人午夜激情片| 亚洲人成网站色在线观看| 久久综合九色99| av亚洲精华国产精华精华| 亚洲欧洲性图库| 日本在线不卡视频一二三区| 欧美日韩大陆一区二区| 你懂的国产精品| 亚洲综合在线第一页| 欧美一区二区三区在线| 欧美精品播放| 另类专区欧美蜜桃臀第一页| 国产日韩三级在线| 麻豆91精品| a级高清视频欧美日韩| 亚洲一区二区3| 精品国产一区二区精华| 国产精品免费一区二区三区在线观看| 精品一区二区在线看| 国产精品蜜臀av| 69堂成人精品免费视频| 在线综合亚洲| 91免费国产在线观看| 美女免费视频一区| 国产精品毛片无遮挡高清| 7777精品伊人久久久大香线蕉| 99成人在线| 91在线精品一区二区三区| 日韩中文字幕亚洲一区二区va在线| 久久久国产精华| 欧美日韩欧美一区二区| 国产欧美日韩在线播放| 欧美一区二区久久| 亚洲影视综合| 欧美在线国产| 蜜芽一区二区三区| 国产精品三级av在线播放| 91精品国产高清一区二区三区 | 91久久久免费一区二区| 精品二区久久| 99精品热视频| 成人视屏免费看| 久久不见久久见免费视频1| 亚洲激情图片小说视频| 国产精品女同一区二区三区| 精品日产卡一卡二卡麻豆| 欧美在线观看视频一区二区| 亚洲永久在线| 一区二区日本视频| 欧美欧美天天天天操| 成人黄色软件下载| 国产一区二区精品久久| 日本成人中文字幕在线视频| 亚洲欧美色图小说| 国产精品丝袜91| 久久久一区二区三区捆绑**| 日韩欧美另类在线| 91麻豆精品国产91久久久| 色视频一区二区| 久久亚洲国产精品日日av夜夜| 国产欧美精品| 99视频在线精品国自产拍免费观看| 狠狠色综合网站久久久久久久| 91麻豆福利精品推荐| 成人app在线观看| 99视频精品在线| 99re在线精品| 欧美精品尤物在线| 欧美欧美全黄| 亚洲激情在线|