Галоўная / Артыкулы / Адэйнство React: Калькі выжываюць да 2030 года

Адэйнство React: Калькі выжываюць да 2030 года

Дазвольце дазнацца, які функцыяны React, такія как серверскія компаненты і кампайляр, застаюцца стабільнымі, а якія патэрны, такія как Redux і CSS-in-JS, поступова занікаюць.

784 слоў

React быў прызнаны «мертвым» больш разоў, ніж хто-лібо можа працягнуць, але гэта ніколі насправды не выходзіць у жыцце. Тым не менш, версія React, якую вы будете пісаць у 2030 годзе, будзе дасканальна адрозненая ад той, яку пішлі сёння. Тые элементы, якія застануцца ў наступныя пяць чы роўна дзесять гадоў, — цэлкам тые, якія вучора падтвердзілі, што рашаюць рэальную проблему, а не тые, якія былі популярныя лишэнь на короткі час.

Што вже зафіксавана

React не трапіў у свой нынешнія формат з-за ўдачы. Функцыі Actions, API use для чытання обяцанняў і значэнняў контексту пад час відрисовкі, атрыбут ref, які спрацоўвае як звычайны проп, і стабільныя Server Components — усе гэта ўжо є фундаментальнымі элементамі, і нічога з гэтага не будзе выключана ў будучыя версіі.

  • Компаненты сервера большэй не ў тэставанні — яны сталі стандартам. React Server Components дазваляюць выканаць рэндарыві інтэрфейсу абсалютна на сервере, што значыць менш JavaScript, які падае ў браузер, і большасць фрэймворкаў тепер увімкнулі гэта за замовчанням.
  • Кампіляр перайшаў з категорыі доследнага проекту ў інструмент для практычнай роботы. З выходам версіі 1.0 ідея напісання звычайнага, простага коду і перадачы задачі з мемаізацыі та оптымізацыі кампіляру стала чымось, што команды насправдэй викорыстоўваюць, а не проста чымось, пра што яны чытаюць.
  • Управлінне проектам стала ўсё стабільней. React перайшаў пад кераванне незалежнай React Foundation, якая знаходзіцца пад эгідай Linux Foundation, што свідчыць пра тое, что будучнасць проекту больш не залежыць ад якога-небудзь адзінаго рашэння, прыменаванага ў Meta.
// app/products/page.tsx — Server Component, no client bundle cost
import { getProducts } from "@/lib/db";

export default async function ProductsPage() {
  const products = await getProducts(); // runs on the server, not the browser
  return (
    <section>
      <h1>Our Products</h1>
      <ul>
        {products.map((p) => (
          <li key={p.id}>{p.name} — ${p.price}</li>
        ))}
      </ul>
    </section>
  );
}

Што тыха праглыдаецца

  • Redux як стандартны контэйнер стану. Калі компаненты сервера адпрацоўваюць загадванні на запрашэнне данных, серверныя адзінкі керуюць змянамі стану, а URL-адрэсы адпрацоўваюць фільтрацыю і пагінацыю, практычна не застаёцца нічаго, што паказвало бы прычыну для наявнасці глобальнага хранільня данных на стороне кліента.
  • Рашэнні з CSS-ам у JS. Бібліятэкі на кшталт Emotion і styled-components зараз фактычна знаходзяцца ў режыме падтрымкі, адтолькі як тыя не сумелі гармоніюваць з модэлем сервернай рэндарынаціі, на якім базуюцца Server Components.
  • Бібліятэкі компанентаў, створаныя з нуля. Патэрн, популярны завдзяк shadcn/ui у поўнай злучэнні з Radix — калі код компанентаў копіюецца безпасцередна ў ваш саўнік уместо інсталляцыі незрозумелага пакета — стаў выбрам пунктом выйска для большасці команд, якія працуюцы над продуктамі.
// Lightweight client state — this is basically all Redux gets used for now
import { create } from "zustand";

const useCartDrawer = create<{ open: boolean; toggle: () => void }>((set) => ({
  open: false,
  toggle: () => set((s) => ({ open: !s.open })),
}));

Што гэта значыць для 2030 года

  • Негайна адаптация даўальніка-першага падходу. Зяўленне даных у складніцы, якая ніколі не адправляецца кліенту, больш не будзе чымса прыгожам — гэта проста стане базовай апэктаваннем.
  • Паставіце канец прычыненню да глобальнага статау з прывычкі. Перш чым наладзіце систему зберагчыка даных, спытайцеся, чы рэальна гэтыя даныя патрабуюцца на сервере, у URL чы ў форме.
  • Tailwind не зникае — гэта станаў стандартам. Благодараць двыжку на базе Rust і відсутнасці патрэбы ў окалічным цепаку PostCSS, Tailwind стаў стандартным слоем стылю для большасці новых проектаў на React.
  • TypeScript больш не ёсць выборам. Кожная команда, якая стварае ўсё серйознае, сьогодні проста выкорыстоўвае яго як базу, а не як дадатковы крок.

Таксама варта адзначыць, што няма жаднага React 20, які чакае на нас. Экасыстэма працюе над становленнем ў зроўнаўжаны стан, а не над спрытным рухам да наступнага большога номера версіі, і гэта, можна сказаць, ўскладненне стану, а не застою.

Заключны вывад

React у 2030 году не будзе іншым фреймворкам — ён застаўся тым жа за основныя ідеі, без дадатковых элементаў, якія нам былі патрэбны толькі таму, што тэхнологія сервернай обробкі дадзеных ўсё яшчэ не была завершана. Збір дадзеных праз сервер, мінімальная залежнасць ад стану кліента і компілятор, які тыхо выкарыстоўвае оптымізацыйныя процесы, якія раней трэба было робіць вручную, — гэта не проста прыпускі; гэта звычкі, якія варта выклікваць ўжо зараз. React, які застанется пяць гадоў згодна, будзе тым, які вже зараз выглядае так сама, толькі з меншымі недагоднасцямі.

Спадневана літэратура