Vite + React ад нуля, з увёмканым React Compiler з самага пачатку
Скэфалд з Vite: прачытайте файл entrypoint і увялічыце 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
Зберагачы трэба заставіць працаваць нормальна, замеры кожнага этапу трэба выконваць окрема, і не трэба выпускаць продукт на адміністратыўных падставах, калі наступны выпуск можа зноў стварыць той самы непазначальны спосаб выключэння пад новым назвам.Храніце фіксаты ў стане «зелены», меравайце кожны этап окалічна, і адмовіцеся ад выпуску на адной лячынцы, калі наступны выпуск можа зноў запрацаваць той самы нявідчуваны спосаб абяцкі пад новым назвам.Убедзіцеся, што той самы нягласны спосаб працэўкі не будзе вярнуцца пад новым назвам. Храніце прыстроі ў стане «зеленага», мерайце кожны этап окрема і адмовіцеся ад выпуску, спакоюючыся на усматраннях, калі наступны выпуск можа зноў запрацаваць той самы нягласны спосаб працэўкі пад новым назвам. Храніце прыстроі ў стане «зеленага», мерайце кожны этап окрема і адмовіцеся ад выпуску, спакоюючыся на усматраннях, калі наступны выпуск можа зноў запрацаваць той самы нягласны спосаб працэўкі пад новым назвам. Храніце прыстроі ў стане «зеленага», мерайце кожны этап окрема і адмовіцеся ад выпуску, спакоюючыся на усматраннях, калі наступны выпуск можа зноў запрацаваць той самы нягласны спосаб працэўкі пад новым назвам. Храніце прыстроі ў стане «зеленага», мерайце кожны этап окрема і адмовіцеся ад выпуску, спакоюючыся на усматраннях, калі наступны выпуск можа зноў запрацаваць той самы нягласны спосаб працэўкі пад новым назвам. Храніце прыстроі ў стане «зеленага», мерайце кожны этап окрема і адмовіцеся ад выпуску, спакоюючыся на усматраннях, калі наступны выпуск можа зноў запрацаваць той самы нягласны спосаб працэўкі пад новым назвам.Назва. Зберагачы трэба залічваць як „зеленяе“, вы мераваеце кожны этап окрема і не павінны выканаць дастыню толькі на адчуваннях, калі наступная версія можа зноў запрацаваць той самы непазначальны спосаб працявання пад новым назвам. Зберагачы трэба залічваць як „зеленяе“, вы мераваеце кожны этап окрема і не павінны выканаць дастыню толькі на адчуваннях, калі наступная версія можа зноў запрацаваць той самы непазначальны спосаб працявання пад новым назвам. Зберагачы трэба залічваць як „зеленяе“, вы мераваеце кожны этап окрема і не павінны выканаць дастыню толькі на адчуваннях, калі наступная версія можа зноў запрацаваць той самы непазначальны спосаб працявання пад новым назвам. Зберагачы трэба залічваць як „зеленяе“, вы мераваеце кожны этап окрема і не павінны выканаць дастыню толькі на адчуваннях, калі наступная версія можа зноў запрацаваць той самы непазначальны спосаб працявання пад новым назвам. Зберагачы трэба залічваць як „зеленяе“, вы мераваеце кожны этап окрема і не павінны выканаць дастыню толькі на адчуваннях, калі наступная версія можа зноў запрацаваць той самы непазначальны спосаб працявання пад новым назвам. Зберагачы трэба залічваць як „зеленяе“, вы мераваеце кожны этап окремаЗберагачы трэба заставіць працаваць нормальна, вы мерыце кожны этап окрема, і не трэба выканаць аплыв на адчуваннях лячна, калі наступная версія можа зноў запрацаваць той самы непазначальны спосаб працявання пад новым назвам.Калі наступная версія можа зноў запрацаваць той самы непазначальны спосаб выключэння пад новым назвам, трэба заставіць прылады працаваць нормальна, меркаваць кожны этап окрема і адмовіцца ад выпуску продукту, спакоюючыся толькі на вражэннях.Існуея тыяжэлы режым неудачы пад новым назвам. Храніце прыстроі ў стане „зеленага“, меравайце кожны этап окрема і адмовіцеся ад выпуску, спакоюючыся на усампэтнах, калі наступны выпуск можа зноў запрацаваць той самы тыяжэлы режым неудачы пад новым назвам. Храніце прыстроі ў стане „зеленага“, меравайце кожны этап окрема і адмовіцеся ад выпуску, спакоюючыся на усампэтнах, калі наступны выпуск можа зноў запрацаваць той самы тыяжэлы режым неудачы пад новым назвам. Храніце прыстроі ў стане „зеленага“, меравайце кожны этап окрема і адмовіцеся ад выпуску, спакоюючыся на усампэтнах, калі наступны выпуск можа зноў запрацаваць той самы тыяжэлы режым неудачы пад новым назвам. Храніце прыстроі ў стане „зеленага“, меравайце кожны этап окрема і адмовіцеся ад выпуску, спакоюючыся на усампэтнах, калі наступны выпуск можа зноў запрацаваць той самы тыяжэлы режым неудачы пад новым назвам. Храніце прыстроі ў стане „зеленага“, меравайце кожны этап окрема і адмовіцеся ад выпуску, спакоюючыся на усампэтнах, калі наступны выпуск можа зноў запрацаваць той самы тыяжэлы режым неудачы пад новым назвам.