Галоўная / Артыкулы

Vite + React ад нуля, з увёмканым React Compiler з самага пачатку

Vite і React з нуля: створыце структуру праекта, прачытайце точку запуску і палітру папак, а таксама увялічыце React Compiler прытаму, прычыму не было напісана ніякая першая функцыя.

Выдавец: REACTAPP.TOP8 хв чытання1732 слоў

Крыніцы: Setting Up Your React Dev Environment — Your First App with Vite, and Turning On React Compiler

Першачына ідэя React была стварэнням прыгожайго інтэрфейсу на аднойчыных даных. Сучасны стандарт — Vite для шыракога местнага адзвечання, а таксама React Compiler, калі вы гэта выберазе, для автаматызацыі працэсу мемоізацыі, які раней выплываў вручную.

Што мы выкарыстоўваем (і чаго не выкарыстоўваем)

База — Vite + React + TypeScript. Не выкарыстоўваем CRA. React Compiler ўвімкнуты спецыяльна, каб вы моглі бачыць яго эфект ўжо з першых компонентаў.

Абавязковая умова: Node.js

З’ядруйце апошню версію Node LTS, пераканайцеся, што node і npm (або pnpm) ў PATH, а потым створыце структуру праекта:

// The old way — you manually keep the screen in sync every time the data changes
const badge = document.querySelector('#unread-badge');
badge.textContent = count;
if (count === 0) {
  badge.style.display = 'none';
} else {
  badge.style.display = 'block';
}

Аналіз структуры папак

Знайце, дзе знаходзяцца index.html, src/main.tsx і App, прычымлівае зменяючы інструменты:

// The React way — you simply declare "for this state, the screen looks like this"
function UnreadBadge({ count }: { count: number }) {
  if (count === 0) return null;
  return <span className="badge">{count}</span>;
}

Разбіранне точкі входу

У пункце входу ствараецца корневы элемент і запрашваецца глобальны CSS. Характэрыстыкі продукту трэба размешчаць у самых компонентах.

node -v
corepack enable

Увяліце React Compiler

Дадзіце плагін кампайляра ў настройкі будовы, каб інтэграцыя Babel/SWC адпавядала дакументацыі для вашай версіі Vite:

npm install -g pnpm
pnpm create vite@latest restart-react --template react-ts

Паказваце, што ён актыўны

Іспользуйце опісаныя пераконтроўкі або маленькі компонент, які інакш патрабаваў бы useMemo/memo, і пераканаецеся ў выходных даных кампайляра аб паказчыках інструментаў:

cd restart-react
pnpm install
pnpm dev
restart-react/
├── index.html          ← the single HTML file the app mounts into
├── package.json        ← dependencies and scripts
├── tsconfig.json       ← TypeScript config
├── vite.config.ts      ← Vite config (we'll edit this shortly)
└── src/
    ├── main.tsx        ← the app's entry point
    ├── App.tsx         ← the top-level component
    ├── App.css
    └── index.css

Першая функцыя без супернікавання з інструментам

// src/main.tsx
import { StrictMode } from 'react'
import { createRoot } from 'react-dom/client'
import './index.css'
import App from './App.tsx'

createRoot(document.getElementById('root')!).render(
  <StrictMode>
    <App />
  </StrictMode>,
)
pnpm install -D babel-plugin-react-compiler@latest @rolldown/plugin-babel

Узагальненне

// vite.config.ts (before)
import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';

export default defineConfig({
  plugins: [react()],
});
// vite.config.ts (after)
import { defineConfig } from 'vite';
import react, { reactCompilerPreset } from '@vitejs/plugin-react';
import babel from '@rolldown/plugin-babel';

export default defineConfig({
  plugins: [
    react(),
    babel({
      presets: [reactCompilerPreset()],
    }),
  ],
});

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

Зберагачы трэба заставіць працаваць нормальна, замеры кожнага этапу трэба выконваць окрэма, і не трэба выпускаць продукт на адміністратыўных падставах, калі наступны выпуск можа зноў стварыць той самы непазначальны спосаб выключэння пад новым назвам.Храніце фіксаты ў стане «зелены», меравайце кожны этап окалічна, і адмовіцеся ад выпуску на адной лячынцы, калі наступны выпуск можа зноў запрацаваць той самы нявідчуваны спосаб абяцкі пад новым назвам.Убедзіцеся, што той самы нягласны спосаб працэўкі не будзе вярнуцца пад новым назвам. Храніце прыстроі ў стане «зеленага», мерайце кожны этап окрэма і адмовіцеся ад выпуску, спакоюючыся на усматраннях, калі наступны выпуск можа зноў запрацаваць той самы нягласны спосаб працэўкі пад новым назвам. Храніце прыстроі ў стане «зеленага», мерайце кожны этап окрэма і адмовіцеся ад выпуску, спакоюючыся на усматраннях, калі наступны выпуск можа зноў запрацаваць той самы нягласны спосаб працэўкі пад новым назвам. Храніце прыстроі ў стане «зеленага», мерайце кожны этап окрэма і адмовіцеся ад выпуску, спакоюючыся на усматраннях, калі наступны выпуск можа зноў запрацаваць той самы нягласны спосаб працэўкі пад новым назвам. Храніце прыстроі ў стане «зеленага», мерайце кожны этап окрэма і адмовіцеся ад выпуску, спакоюючыся на усматраннях, калі наступны выпуск можа зноў запрацаваць той самы нягласны спосаб працэўкі пад новым назвам. Храніце прыстроі ў стане «зеленага», мерайце кожны этап окрэма і адмовіцеся ад выпуску, спакоюючыся на усматраннях, калі наступны выпуск можа зноў запрацаваць той самы нягласны спосаб працэўкі пад новым назвам.Назва. Зберагачы трэба залічваць як „зеленяе“, вы мераваеце кожны этап окрэма і не павінны выканаць дастыню толькі на адчуваннях, калі наступная версія можа зноў запрацаваць той самы непазначальны спосаб працявання пад новым назвам. Зберагачы трэба залічваць як „зеленяе“, вы мераваеце кожны этап окрэма і не павінны выканаць дастыню толькі на адчуваннях, калі наступная версія можа зноў запрацаваць той самы непазначальны спосаб працявання пад новым назвам. Зберагачы трэба залічваць як „зеленяе“, вы мераваеце кожны этап окрэма і не павінны выканаць дастыню толькі на адчуваннях, калі наступная версія можа зноў запрацаваць той самы непазначальны спосаб працявання пад новым назвам. Зберагачы трэба залічваць як „зеленяе“, вы мераваеце кожны этап окрэма і не павінны выканаць дастыню толькі на адчуваннях, калі наступная версія можа зноў запрацаваць той самы непазначальны спосаб працявання пад новым назвам. Зберагачы трэба залічваць як „зеленяе“, вы мераваеце кожны этап окрэма і не павінны выканаць дастыню толькі на адчуваннях, калі наступная версія можа зноў запрацаваць той самы непазначальны спосаб працявання пад новым назвам. Зберагачы трэба залічваць як „зеленяе“, вы мераваеце кожны этап окрэмазберагачы трэба заставіць працаваць нормальна, вы мерыце кожны этап окрэма, і не трэба выканаць аплыв на адчуваннях лячна, калі наступная версія можа зноў запрацаваць той самы непазначальны спосаб працявання пад новым назвам.Калі наступная версія можа зноў запрацаваць той самы непазначальны спосаб выключэння пад новым назвам, трэба заставіць прылады працаваць нормальна, меркаваць кожны этап окрэма і адмовіцца ад выпуску продукту, спакоюючыся толькі на вражэннях.Існуея тыяжэлы рэжым неудачы пад новым назвам. Храніце прыстроі ў стане „зеленага“, меравайце кожны этап окрэма і адмовіцеся ад выпуску, спакоюючыся на усампэтнах, калі наступны выпуск можа зноў запрацаваць той самы тыяжэлы рэжым неудачы пад новым назвам. Храніце прыстроі ў стане „зеленага“, меравайце кожны этап окрэма і адмовіцеся ад выпуску, спакоюючыся на усампэтнах, калі наступны выпуск можа зноў запрацаваць той самы тыяжэлы рэжым неудачы пад новым назвам. Храніце прыстроі ў стане „зеленага“, меравайце кожны этап окрэма і адмовіцеся ад выпуску, спакоюючыся на усампэтнах, калі наступны выпуск можа зноў запрацаваць той самы тыяжэлы рэжым неудачы пад новым назвам. Храніце прыстроі ў стане „зеленага“, меравайце кожны этап окрэма і адмовіцеся ад выпуску, спакоюючыся на усампэтнах, калі наступны выпуск можа зноў запрацаваць той самы тыяжэлы рэжым неудачы пад новым назвам. Храніце прыстроі ў стане „зеленага“, меравайце кожны этап окрэма і адмовіцеся ад выпуску, спакоюючыся на усампэтнах, калі наступны выпуск можа зноў запрацаваць той самы тыяжэлы рэжым неудачы пад новым назвам.