首頁 > web前端 > js教程 > 停止運行 Next.js — Remix 是 React 的未來,這就是你錯過的原因

停止運行 Next.js — Remix 是 React 的未來,這就是你錯過的原因

Patricia Arquette
發布: 2024-12-31 02:18:09
原創
346 人瀏覽過

Stop Running to Next.js — Remix is the Future of React, and Here’s Why You’re Missing Out

React 開發人員面臨的悖論

想像一下:您是React 開發人員,在Next.js 的世界中游刃有餘,享受伺服器端渲染(SSR)、靜態站點生成(SSG)、API 路由以及所有隨之而來的功能。 Next.js 已成為您值得信賴的伴侶,引導您應對現代 Web 開發的複雜性。

但是,在你的眼角,你看到了Remix。它看起來像是另一個試圖加入不斷增長的 React 生態系統的框架。但等等——這是由React Router背後的同一團隊創建的。這不值得關注嗎?

你情不自禁地問自己,「Remix 只是另一個流行詞,還是還有什麼東西值得我認真考慮?」

讓我立即消除這個疑問:Remix 不僅僅是 Next.js 的替代方案 - 它是構建 Web 應用程式的一種新的、更優越的方法。是時候拋開 Next.js 的限制,用 Remix 擁抱下一代 Web 開發了。

在這篇部落格中,我將詳細解釋為什麼 Remix 應該成為您的首選框架,為什麼開發人員放棄 Next.js,以及為什麼這可能是您一直在等待的框架。

沒有絨毛。沒有炒作。只是事實。 讓我們深入探討。


為什麼 Remix 勝過 Next.js:效能為王

我們來談談大家在選擇框架時最想知道的一點:性能。畢竟,您正在為速度至關重要的現實世界建立應用程式 - 對於用戶、搜尋引擎以及最終您的業務。

1. 資料載入:Remix 的伺服器端魔法

Next.js中,您可以使用getServerSidePropsgetStaticProps,甚至getInitialProps來管理資料取得。但事情是這樣的:它們都會在資料和元件之間造成脫節。這就像為您的組件和資料擁有一條單獨的裝配線,迫使它們稍後同步。

輸入 Remix 及其 Loaders。載入器模式是天才,因為它將資料擷取過程直接與路由連結起來。每個路由的載入器都可以在渲染元件之前取得數據,為您提供更流暢、更有效率的載入體驗。這種方法消除了不必要的複雜性,並最大限度地減少 JavaScript 執行,使您的應用程式更快。

混音範例:

// app/routes/products.jsx
import { useLoaderData } from "remix";

export function loader() {
  return fetch('/api/products').then(res => res.json());
}

export default function Products() {
  const products = useLoaderData();
  return (
    <div>
      {products.map(product => (
        <div key={product.id}>{product.name}</div>
      ))}
    </div>
  );
}
登入後複製

在 Next.js 中(實現相同的目的):

// pages/products.js
export async function getServerSideProps() {
  const res = await fetch('/api/products');
  const products = await res.json();
  return { props: { products } };
}

export default function Products({ products }) {
  return (
    <div>
      {products.map(product => (
        <div key={product.id}>{product.name}</div>
      ))}
    </div>
  );
}
登入後複製

注意到差別了嗎?在 Remix 中,所有內容都整齊地封裝在載入器中,讓您的元件更簡單,樣板程式碼更少。


2. 漸進式水合作用:不再有 JavaScript 臃腫

Remix 不會預先載入不必要的 JavaScript,這直接導致更快的載入時間。 Next.js 可能會在頁面互動之前使用巨大的 JS 套件來填充整個應用程序,但 Remix 可確保僅在客戶端加載必要的內容。

這種漸進式水合作用方法確保用戶可以幾乎立即開始與頁面交互,而無需等待整個應用程式加載。想一想:當您的用戶準備好時,您的應用程式就準備好了


3. 內建快速渲染最佳化

Next.js 面臨的最大挑戰之一是處理客戶端水合作用和渲染——尤其是當您擁有包含動態內容的大頁面時。 Remix 透過最佳化從伺服器到客戶端的渲染流程來消除這個問題,確保更少的重新渲染更少的資料取得發生在客戶端,這會導致頁面載入速度更快

底線? Remix 頁面載入速度更快且不需要太多繁重的客戶端JavaScript,這會帶來更好的效能搜尋引擎最佳化


開發者體驗:自由、靈活性與控制

既然我們已經解決了效能問題,那麼我們來談談開發者體驗。如果您像我一樣,您想要的框架不僅僅是“完成工作”,而且讓您的生活更輕鬆,讓您能夠完成工作而無需與樣板代碼或無休止的鬥爭配置.

這就是Remix真正閃耀的地方。

1. 內建嵌套路由與版面:告別道具鑽探

Remix 最強大的功能之一是巢狀路線。這意味著您可以直接在路由配置中精細地定義佈局和元件,並跨頁面共享它們而不會使您的應用程式膨脹

Remix 中的路由系統非常直覺。它本質上是增強版的React Router。 Remix 不是在頁面中嵌套組件並處理道具鑽取,而是為您提供嵌套佈局

,其中每個頁面都是獨立但無縫連接的。

2. 直接來自框架的錯誤邊界

Next.js 為您提供錯誤邊界,但 Remix 使它們成為一等公民。不再到處拋出 try-catch 區塊或編寫複雜的錯誤處理邏輯。借助 Remix,每條路線都會自動包含在錯誤邊界中,這使得處理錯誤變得乾淨而簡單。


現實世界的例子:野外混音

那麼,Remix 真的是貨真價實的嗎?準備好生產了嗎?絕對的。

讓我們來看看一些已經轉向Remix的公司

1. OpenAI(是的,ChatGPT)

OpenAI 將其生產系統遷移到 Remix,以提高效能減少對客戶端渲染的依賴。他們的網站現在載入速度更快,只需向客戶端發送最少的 JavaScript,使其快速且流暢。

2.Shopify

Shopify 的自訂網路應用程式改用 Remix 來處理需要強大的伺服器端渲染更快的資料取得的大型應用程式。結果呢?應用程式可擴展性、效能和使用者體驗大幅提升。


底線:為什麼 Remix 是未來的框架

如果您仍然對 Remix 持觀望態度,以下是底線:

  • 更快的應用程式:得益於 SSR、漸進式水合作用以及與路線直接相關的資料載入。
  • 更乾淨、更簡單的程式碼:Remix 的結構透過一流的錯誤邊界、巢狀路由和內建載入器降低了複雜性。
  • 更好的效能:優化渲染、減少 JavaScript 膨脹和更聰明的資料取得。
  • 更靈活、更強大的開發者體驗:Remix 使您能夠完全按照您想要的方式構建,而無需其他框架強加的僵化。

那麼,為什麼要堅持使用 Next.js?

Next.js 為我們提供了很好的服務,但時代已經改變了。 Remix 提供了一種更乾淨、更快、更有效率的方式來建立現代 React 應用程式。這就像從轎車升級為高性能跑車。當然,轎車可以帶您從 A 點到達 B 點,但有了 Remix,您將更快地到達目的地,擁有更多控制力,並且一路上享受更多樂趣

如果您準備好擁抱未來,請切換到 Remix。以後你會感謝自己的。

立即開始使用 Remix 進行構建,查看他們的官方文件 — 是時候將 Next.js 留在後視鏡中了。


需要速度嗎? 準備好掌控一切了嗎? 加入混音革命。


以上是停止運行 Next.js — Remix 是 React 的未來,這就是你錯過的原因的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板