Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
111 commits
Select commit Hold shift + click to select a range
6a35e13
Update react-19-upgrade-guide.md
sophiebits Dec 2, 2024
4bae717
Fix typo in react-19-upgrade-guide.md
sophiebits Dec 2, 2024
fd8b1e0
Update React v19 blog post for stable release (#7321)
rickhanlonii Dec 5, 2024
4673a05
Merge v19 docs to main (#7322)
rickhanlonii Dec 5, 2024
d6f3659
update version label
rickhanlonii Dec 5, 2024
d2536c0
fix vv19
rickhanlonii Dec 5, 2024
8235ae9
Fix types install instructions in 19 upgrade guide
eps1lon Dec 5, 2024
4d7cc91
Update Versions page (#7324)
rickhanlonii Dec 5, 2024
ebedc89
fix links to prerender docs (#7323)
mayank99 Dec 5, 2024
acda167
Add compiler beta release to Version changelog
rickhanlonii Dec 5, 2024
69edd84
fixed typo in yarn add command (#7326)
JakeSaterlay Dec 5, 2024
3b02f82
Update React DevTools docs to reference RN DevTools (#7355)
huntie Dec 11, 2024
9fb491d
Fix troubleshooting links in startTransition reference (#7367)
jimmycallin Dec 16, 2024
51864f6
(fix): mismatch href bug (#7368)
ahm3tozenir Dec 16, 2024
bc93f05
Fix stylesheet precedence example (#7235)
EricCote Dec 16, 2024
07eca83
Fix intro of prerenderToNodeStream (#7356)
smikitky Dec 16, 2024
c92bad2
chore: several major typo fixes (#7362)
coalio Dec 16, 2024
d3bd0f9
Update act.md (#7363)
huiliangShen Dec 16, 2024
31456db
chore: correct typo in useTransition docs (#7366)
AminDannak Dec 16, 2024
d4d1683
chore: fix a typo in startTransition docs (#7361)
AminDannak Dec 16, 2024
04ba43c
fix: add link to prop-type codemod (#7344)
renbaoshuo Dec 16, 2024
4349dd5
fix: anchor (#7343)
Jealh-h Dec 16, 2024
d3cde8f
Fix "won't break between majors" (#7357)
smikitky Dec 16, 2024
37e1ce9
Add React Summit 2025 to conferences.md; move past conferences to theโ€ฆ
denis-urban Dec 16, 2024
4b5ce91
Add missing react-error-boundary dependency (#7353)
acusti Dec 16, 2024
0805613
fix broken link in use server (#7351)
simon300000 Dec 16, 2024
a4b6074
fix: page does not exist (#7348)
nusr Dec 16, 2024
807e7fa
Mention that uncontrolled form elements are reset by form actions (#7โ€ฆ
jeremy-deutsch Dec 16, 2024
0f8bd80
Code example mistake in useMemo page (#7335)
JZZICK Dec 16, 2024
3558095
docs: include React 19 blog post in sidebarBlog.json (#7331)
slorber Dec 16, 2024
93a03f1
docs: Fix broken link to next.js Suspense docs (#7318)
ethshea Dec 16, 2024
204b3f1
Remove canary flag from useFormStatus (#7349)
smikitky Dec 16, 2024
8ac5531
Rename remaining "Server Actions" (#7352)
smikitky Dec 16, 2024
9985199
docs[compiler]: clarify React DevTools support for Compiler Badges inโ€ฆ
piotrski Dec 16, 2024
c37fdd3
Remove forwardref from useImperativeHandle docs (#7360)
SebassNoob Dec 16, 2024
e2bba41
docs: fix readme node version (#7316)
devwqc Dec 16, 2024
8a5526e
Update lauren (#7373)
poteto Dec 17, 2024
03e74dd
Add info about App.js 2025 conference (#7154)
piaskowyk Dec 18, 2024
8e41e32
Inline stylesheets are not Suspensey yet (#7378)
eps1lon Dec 19, 2024
1517494
refactor: remove unused useTransition import in App.js and update docโ€ฆ
Rekl0w Dec 19, 2024
6ae99dd
Remove forwardRef references from useRef and Manipulating the DOM witโ€ฆ
mattcarrollcode Dec 20, 2024
b1a249d
Fix React Native DevTools link (#7386)
rammba Dec 24, 2024
5a46aaf
merging all conflicts
react-translations-bot Dec 30, 2024
ea4fc35
docs: resolve conflict in `README.md`
lumirlumir Dec 30, 2024
ff21c19
chore: resolve conflict in `sidebarReference.json`
lumirlumir Dec 30, 2024
446273e
chore: delete stale names from `CODEOWNERS`
lumirlumir Dec 30, 2024
00d9e6f
docs: update `versions.md`
lumirlumir Dec 30, 2024
5040d29
docs: update `blog/index.md`
lumirlumir Dec 30, 2024
5feba88
docs: update `data-fetching-with-react-server-components`
lumirlumir Dec 30, 2024
1a8f84b
docs: update `the-plan-for-react-18.md`
lumirlumir Dec 30, 2024
9682773
docs: update `react-conf-2021-recap.md`
lumirlumir Dec 30, 2024
b5021f9
docs: update `react-18-upgrade-guide`
lumirlumir Dec 30, 2024
1a37114
docs: update `learn/index.md`
lumirlumir Dec 30, 2024
3ca7d66
docs: update `useDeferredValue.md`
lumirlumir Dec 31, 2024
f826c9d
docs: update `react-v18.md`
lumirlumir Dec 31, 2024
29d7b8f
docs: update `react-labs-what-we-have-benn-working-on-june-2022.md`
lumirlumir Dec 31, 2024
ca02700
docs: update `introducing-react-dev`
lumirlumir Dec 31, 2024
88b5031
docs: update `react-labs-what-we-have-been-wroking-...-.md`
lumirlumir Dec 31, 2024
0a41154
docs: update `react-canaries.md`
lumirlumir Dec 31, 2024
71c2f31
docs: update `react-labs-what-we-have-been-working-on-february-2024.md`
lumirlumir Dec 31, 2024
9f996d2
docs: update `react-19-upgrade-guide`
lumirlumir Dec 31, 2024
5095e26
docs: update `react-compiler.md`
lumirlumir Dec 31, 2024
179e0fc
docs: resolve conflict in `react-19.md`
lumirlumir Dec 31, 2024
3a6a612
chore: translate `sidebarX.json`
lumirlumir Jan 1, 2025
f10061d
docs: update `community/index.md`
lumirlumir Jan 1, 2025
0fda6a9
docs: update `videos.md`
lumirlumir Jan 1, 2025
b1387b0
docs: update `docs-contributors`
lumirlumir Jan 1, 2025
3e688e3
docs: update `acknowledgements.md`
lumirlumir Jan 1, 2025
d6deb02
docs: update `versioning-policy.md`
lumirlumir Jan 1, 2025
4a51b08
docs: update `reference/react/index.md`
lumirlumir Jan 1, 2025
e28d7a0
docs: update `legacy.md`
lumirlumir Jan 1, 2025
74d59fd
docs: update `Children.md`
lumirlumir Jan 1, 2025
91664e9
docs: update `cloneElement.md`
lumirlumir Jan 1, 2025
bea2d12
docs: update `Component.md`
lumirlumir Jan 1, 2025
59a0958
docs: resolve conflict in `createElement.md`
lumirlumir Jan 1, 2025
44d14e0
docs: update `createRef.md`
lumirlumir Jan 1, 2025
9e1559b
docs: update `forwardRef.md`
lumirlumir Jan 1, 2025
8a927c1
refactor: translate `<RSC>` callout component
lumirlumir Jan 1, 2025
4a8c0ad
docs: update `server-components.md`
lumirlumir Jan 1, 2025
e27c132
docs: update `server-functions.md`
lumirlumir Jan 1, 2025
44b4a7f
docs: resolve conflict in `directives.md`
lumirlumir Jan 1, 2025
afd8b82
docs: update `use-client.md`
lumirlumir Jan 2, 2025
4367455
docs: update `use-server.md`
lumirlumir Jan 2, 2025
9137ecc
docs: update `rules/index.md`
lumirlumir Jan 2, 2025
8310e7d
docs: update `components-and-hooks-must-be-pure`
lumirlumir Jan 3, 2025
f39068a
docs: update `react-calls-components-and-hooks`
lumirlumir Jan 3, 2025
0da537e
docs: update `rules-of-hooks.md`
lumirlumir Jan 3, 2025
d7f4ab7
docs: update `prerender.md`
lumirlumir Jan 3, 2025
9ebd94c
docs: update `prerenderToNodeStream.md`
lumirlumir Jan 3, 2025
f222c5d
docs: update `server/index.md`
lumirlumir Jan 3, 2025
8ffa529
docs: update `renderToPipeableStream.md`
lumirlumir Jan 3, 2025
2a81986
docs: update `renderToReadableStream.md`
lumirlumir Jan 3, 2025
d2fd63f
docs: update `renderToStaticMarkup.md`
lumirlumir Jan 3, 2025
f8ae01a
docs: update `renderToString.md`
lumirlumir Jan 3, 2025
4c2a77b
docs: remove `renderToNodeStream.md` and `renderToStaticNodeStream.md`
lumirlumir Jan 3, 2025
1b108ff
docs: delete `findDomNode`, `hydrate`, `render`, `unmountComponentAtNโ€ฆ
lumirlumir Jan 3, 2025
c5ed7b8
docs: update `client/index.md`
lumirlumir Jan 3, 2025
77e99b6
docs: update `createRoot.md`
lumirlumir Jan 3, 2025
bbb67f5
docs: update `hydrateRoot.md`
lumirlumir Jan 4, 2025
25ee2ce
docs: update `react-dom/index.md`
lumirlumir Jan 4, 2025
33d87e8
docs: update `createPortal.md`
lumirlumir Jan 4, 2025
8d0874b
docs: update `flushSync.md`
lumirlumir Jan 4, 2025
b883bdd
docs: update `preconnet.md`
lumirlumir Jan 4, 2025
4c30d2c
docs: update `prefetchDNS.md`
lumirlumir Jan 4, 2025
713d2f2
docs: update `preload.md`
lumirlumir Jan 4, 2025
1d466a3
docs: update `preloadModule.md`
lumirlumir Jan 4, 2025
8e9f382
docs: update `components/index.md`
lumirlumir Jan 4, 2025
1662f2a
docs: update `common.md`
lumirlumir Jan 4, 2025
77f0bc8
docs: update `form.md`
lumirlumir Jan 4, 2025
2d364b5
docs: update `input.md`
lumirlumir Jan 4, 2025
f3fea30
docs: resolve conflicts
lumirlumir Jan 4, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -1 +1 @@
* @hg-pyun @taehwanno @simsim0709 @gnujoow @b9words @taggon @MaxKim-J @eomttt @lumirlumir
* @hg-pyun @gnujoow @eomttt @lumirlumir
Binary file modified public/images/team/lauren.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
32 changes: 32 additions & 0 deletions src/components/Icon/IconRocket.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
/*
* Copyright (c) Facebook, Inc. and its affiliates.
*/

import {memo} from 'react';

export const IconRocket = memo<
JSX.IntrinsicElements['svg'] & {title?: string; size?: 's' | 'md'}
>(function IconRocket({className, size = 'md'}) {
return (
<svg
className={className}
aria-hidden="true"
width={size === 's' ? '1.2em' : '1.5em'}
height={size === 's' ? '1.2em' : '1.5em'}
fill="currentColor"
version="1.1"
viewBox="0 0 1200 1200"
xmlns="http://www.w3.org/2000/svg">
<g fillRule="evenodd">
<path d="m911.8 288.2c65.051 65.051 65.051 170.6 0 235.65-65.051 65.051-170.6 65.051-235.65 0-65.051-65.051-65.051-170.6 0-235.65 65.051-65.051 170.6-65.051 235.65 0zm-53.051 53.051c-35.75-35.801-93.801-35.801-129.55 0-35.801 35.75-35.801 93.801 0 129.55 35.75 35.801 93.801 35.801 129.55 0 35.801-35.75 35.801-93.801 0-129.55z" />
<path d="m1122.2 103.4s96.648 328.1-194.4 619.1c-130.75 130.75-303.25 226.75-440.75 250.5-12.102 2.0508-24.449-1.8984-33.102-10.648l-231.55-234.8c-8.6484-8.8008-12.449-21.301-10.102-33.398 26.102-135.4 135.45-292.2 265.2-421.95 291-291.05 619.1-194.4 619.1-194.4 12.352 3.6016 22 13.25 25.602 25.602zm-67.5 41.898c-70.898-12.898-308.6-35.602-524.15 179.9-112.35 112.35-210.4 245.4-240.4 364.25 0 0 203.05 205.9 203.1 205.9 121.75-26.852 268.4-112.75 381.55-225.9 215.5-215.55 192.8-453.25 179.9-524.15z" />
<path d="m151.55 543.85 124 20.648c20.398 3.3984 34.25 22.75 30.801 43.148-3.3984 20.449-22.699 34.25-43.148 30.852l-144.35-24.051c-22.148-3.6992-40.699-18.949-48.602-40-7.9492-21.051-4.0508-44.699 10.199-62.148l122.85-150.15c15.051-18.398 36.898-30 60.551-32.148l179.55-16.301c20.602-1.8984 38.852 13.352 40.75 33.949 1.8516 20.602-13.352 38.852-33.949 40.75l-179.55 16.301c-3.6484 0.35156-7 2.1016-9.3008 4.9492z" />
<path d="m656.15 1048.4 134.2-109.8c2.8516-2.3008 4.6016-5.6484 4.9492-9.3008l16.301-179.55c1.8984-20.602 20.148-35.801 40.75-33.949 20.602 1.8984 35.852 20.148 33.949 40.75l-16.301 179.55c-2.1484 23.648-13.75 45.5-32.148 60.551l-150.15 122.85c-17.449 14.25-41.102 18.148-62.148 10.199-21.051-7.8984-36.301-26.449-40-48.602l-29.25-175.7c-3.3984-20.398 10.398-39.75 30.801-43.148 20.449-3.3984 39.75 10.449 43.148 30.852l25.898 155.3z" />
<path d="m310.9 560.4c-14.648-14.648-14.648-38.398 0-53.051 14.648-14.648 38.398-14.648 53.051 0l328.7 328.7c14.648 14.648 14.648 38.398 0 53.051-14.648 14.648-38.398 14.648-53.051 0z" />
<path d="m383.95 982.15c14.648-14.602 38.398-14.602 53.051 0 14.602 14.648 14.602 38.398 0 53.051l-91.352 91.301c-14.602 14.648-38.398 14.648-53 0-14.648-14.602-14.648-38.398 0-53z" />
<path d="m237.85 909.1c14.648-14.602 38.398-14.602 53.051 0 14.602 14.648 14.602 38.398 0 53.051l-127.85 127.85c-14.648 14.648-38.398 14.648-53.051 0-14.648-14.648-14.648-38.398 0-53.051z" />
<path d="m164.8 763c14.648-14.602 38.398-14.602 53.051 0 14.602 14.648 14.602 38.398 0 53.051l-91.352 91.301c-14.602 14.648-38.398 14.648-53 0-14.648-14.602-14.648-38.398 0-53z" />
</g>
</svg>
);
});
15 changes: 11 additions & 4 deletions src/components/Layout/Sidebar/SidebarLink.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ interface SidebarLinkProps {
selected?: boolean;
title: string;
level: number;
canary?: boolean;
version?: 'canary' | 'major';
icon?: React.ReactNode;
isExpanded?: boolean;
hideArrow?: boolean;
Expand All @@ -27,7 +27,7 @@ export function SidebarLink({
href,
selected = false,
title,
canary,
version,
level,
isExpanded,
hideArrow,
Expand Down Expand Up @@ -75,10 +75,17 @@ export function SidebarLink({
{/* This here needs to be refactored ofc */}
<div>
{title}{' '}
{canary && (
{version === 'major' && (
<span
title="- This feature is available in React 19 beta and the React canary channel"
className={`text-xs px-1 ms-1 rounded bg-gray-10 dark:bg-gray-40 dark:bg-opacity-20 text-gray-40 dark:text-gray-40`}>
React 19
</span>
)}
{version === 'canary' && (
<IconCanary
title=" - This feature is available in the latest Canary"
className="ms-2 text-gray-30 dark:text-gray-60 inline-block w-4 h-4 align-[-3px]"
className="ms-1 text-gray-30 dark:text-gray-60 inline-block w-3.5 h-3.5 align-[-3px]"
/>
)}
</div>
Expand Down
6 changes: 3 additions & 3 deletions src/components/Layout/Sidebar/SidebarRouteTree.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ export function SidebarRouteTree({
path,
title,
routes,
canary,
version,
heading,
hasSectionHeader,
sectionHeader,
Expand Down Expand Up @@ -121,7 +121,7 @@ export function SidebarRouteTree({
selected={selected}
level={level}
title={title}
canary={canary}
version={version}
isExpanded={isExpanded}
hideArrow={isForceExpanded}
/>
Expand All @@ -145,7 +145,7 @@ export function SidebarRouteTree({
selected={selected}
level={level}
title={title}
canary={canary}
version={version}
/>
</li>
);
Expand Down
4 changes: 2 additions & 2 deletions src/components/Layout/getRouteMeta.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@ export type RouteTag =
export interface RouteItem {
/** Page title (for the sidebar) */
title: string;
/** Optional canary flag for heading */
canary?: boolean;
/** Optional version flag for heading */
version?: 'canary' | 'major';
/** Optional page description for heading */
description?: string;
/* Additional meta info for page tagging */
Expand Down
34 changes: 30 additions & 4 deletions src/components/MDX/ExpandableCallout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,16 @@ import {IconNote} from '../Icon/IconNote';
import {IconWarning} from '../Icon/IconWarning';
import {IconPitfall} from '../Icon/IconPitfall';
import {IconCanary} from '../Icon/IconCanary';
import {IconRocket} from '../Icon/IconRocket';

type CalloutVariants = 'deprecated' | 'pitfall' | 'note' | 'wip' | 'canary';
type CalloutVariants =
| 'deprecated'
| 'pitfall'
| 'note'
| 'wip'
| 'canary'
| 'major'
| 'rsc';

interface ExpandableCalloutProps {
children: React.ReactNode;
Expand Down Expand Up @@ -59,6 +67,22 @@ const variantMap = {
overlayGradient:
'linear-gradient(rgba(249, 247, 243, 0), rgba(249, 247, 243, 1)',
},
major: {
title: 'React 19',
Icon: IconRocket,
containerClasses: 'bg-blue-10 dark:bg-blue-60 dark:bg-opacity-20',
textColor: 'text-blue-50 dark:text-blue-40',
overlayGradient:
'linear-gradient(rgba(249, 247, 243, 0), rgba(249, 247, 243, 1)',
},
rsc: {
title: 'React ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ',
Icon: null,
containerClasses: 'bg-blue-10 dark:bg-blue-60 dark:bg-opacity-20',
textColor: 'text-blue-50 dark:text-blue-40',
overlayGradient:
'linear-gradient(rgba(249, 247, 243, 0), rgba(249, 247, 243, 1)',
},
};

function ExpandableCallout({children, type = 'note'}: ExpandableCalloutProps) {
Expand All @@ -72,9 +96,11 @@ function ExpandableCallout({children, type = 'note'}: ExpandableCalloutProps) {
variant.containerClasses
)}>
<h3 className={cn('text-2xl font-display font-bold', variant.textColor)}>
<variant.Icon
className={cn('inline me-3 mb-1 text-lg', variant.textColor)}
/>
{variant.Icon && (
<variant.Icon
className={cn('inline me-2 mb-1 text-lg', variant.textColor)}
/>
)}
{variant.title}
</h3>
<div className="relative">
Expand Down
32 changes: 32 additions & 0 deletions src/components/MDX/MDXComponents.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,14 @@ const Canary = ({children}: {children: React.ReactNode}) => (
<ExpandableCallout type="canary">{children}</ExpandableCallout>
);

const NextMajor = ({children}: {children: React.ReactNode}) => (
<ExpandableCallout type="major">{children}</ExpandableCallout>
);

const RSC = ({children}: {children: React.ReactNode}) => (
<ExpandableCallout type="rsc">{children}</ExpandableCallout>
);

const CanaryBadge = ({title}: {title: string}) => (
<span
title={title}
Expand All @@ -111,6 +119,26 @@ const CanaryBadge = ({title}: {title: string}) => (
</span>
);

const NextMajorBadge = ({title}: {title: string}) => (
<span
title={title}
className={
'text-base font-display px-2 py-0.5 font-bold bg-blue-10 dark:bg-blue-60 text-gray-60 dark:text-gray-10 rounded'
}>
React 19
</span>
);

const RSCBadge = ({title}: {title: string}) => (
<span
title={title}
className={
'text-base font-display px-2 py-0.5 font-bold bg-blue-10 dark:bg-blue-50 text-gray-60 dark:text-gray-10 rounded'
}>
RSC
</span>
);

const Blockquote = ({
children,
...props
Expand Down Expand Up @@ -483,6 +511,10 @@ export const MDXComponents = {
Note,
Canary,
CanaryBadge,
NextMajor,
NextMajorBadge,
RSC,
RSCBadge,
PackageImport,
ReadBlogPost,
Recap,
Expand Down
4 changes: 2 additions & 2 deletions src/components/MDX/Sandpack/template.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@ root.render(
eject: 'react-scripts eject',
},
dependencies: {
react: '^18.0.0',
'react-dom': '^18.0.0',
react: '19.0.0-rc-3edc000d-20240926',
'react-dom': '19.0.0-rc-3edc000d-20240926',
'react-scripts': '^5.0.0',
},
},
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
---
title: "์ œ๋กœ ๋ฒˆ๋“ค ์‚ฌ์ด์ฆˆ React ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ ์†Œ๊ฐœ"
title: "์ œ๋กœ ๋ฒˆ๋“ค ์‚ฌ์ด์ฆˆ React ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค"
author: Dan Abramov, Lauren Tan, Joseph Savona, and Sebastian Markbage
date: 2020/12/21
description: 2020๋…„์€ ๊ธด ํ•œ ํ•ด์˜€์Šต๋‹ˆ๋‹ค. ์—ฐ๋ง์ด ๋‹ค๊ฐ€์˜ด์— ๋”ฐ๋ผ ์ œ๋กœ ๋ฒˆ๋“ค ์‚ฌ์ด์ฆˆ์˜ React ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ ์—ฐ๊ตฌ์— ๋Œ€ํ•œ ํŠน๋ณ„ํ•œ ํ™€๋ฆฌ๋ฐ์ด ์—…๋ฐ์ดํŠธ๋ฅผ ๊ณต์œ ํ•˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.
description: 2020๋…„์€ ๊ธด ํ•œ ํ•ด์˜€์Šต๋‹ˆ๋‹ค. ์—ฐ๋ง์ด ๋‹ค๊ฐ€์˜ด์— ๋”ฐ๋ผ ์ œ๋กœ ๋ฒˆ๋“ค ์‚ฌ์ด์ฆˆ์˜ React ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ ์—ฐ๊ตฌ์— ๋Œ€ํ•œ ํŠน๋ณ„ ์—ฐํœด ์—…๋ฐ์ดํŠธ๋ฅผ ๊ณต์œ ํ•˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.
---

2020๋…„ 12์›” 21์ผ, [Dan Abramov](https://twitter.com/dan_abramov), [Lauren Tan](https://twitter.com/potetotes), [Joseph Savona](https://twitter.com/en_JS), [Sebastian Markbรฅge](https://twitter.com/sebmarkbage)
Expand All @@ -11,24 +11,24 @@ description: 2020๋…„์€ ๊ธด ํ•œ ํ•ด์˜€์Šต๋‹ˆ๋‹ค. ์—ฐ๋ง์ด ๋‹ค๊ฐ€์˜ด์— ๋”ฐ๋ผ

<Intro>

2020๋…„์€ ๊ธด ํ•œ ํ•ด์˜€์Šต๋‹ˆ๋‹ค. ์—ฐ๋ง์ด ๋‹ค๊ฐ€์˜ด์— ๋”ฐ๋ผ ์ œ๋กœ ๋ฒˆ๋“ค ์‚ฌ์ด์ฆˆ์˜ **React ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ** ์—ฐ๊ตฌ์— ๋Œ€ํ•œ ํŠน๋ณ„ํ•œ ํ™€๋ฆฌ๋ฐ์ด ์—…๋ฐ์ดํŠธ๋ฅผ ๊ณต์œ ํ•˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.
2020๋…„์€ ๊ธด ํ•œ ํ•ด์˜€์Šต๋‹ˆ๋‹ค. ์—ฐ๋ง์ด ๋‹ค๊ฐ€์˜ด์— ๋”ฐ๋ผ ์ œ๋กœ ๋ฒˆ๋“ค ์‚ฌ์ด์ฆˆ **React ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ** ์—ฐ๊ตฌ์— ๋Œ€ํ•œ ํŠน๋ณ„ ์—ฐํœด ์—…๋ฐ์ดํŠธ๋ฅผ ๊ณต์œ ํ•˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.

</Intro>

---

React ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์†Œ๊ฐœํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ•์—ฐ๊ณผ ๋ฐ๋ชจ๋ฅผ ์ค€๋น„ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์—ฐํœด ๊ธฐ๊ฐ„ ๋˜๋Š” ์ƒˆํ•ด์— ์—…๋ฌด๊ฐ€ ์žฌ๊ฐœ๋˜๋Š” ์‹œ์ ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
React ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์†Œ๊ฐœํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ•์—ฐ๊ณผ ๋ฐ๋ชจ๋ฅผ ์ค€๋น„ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์—ฐํœด ๊ธฐ๊ฐ„ ๋˜๋Š” ์ƒˆํ•ด์— ์—…๋ฌด๊ฐ€ ์žฌ๊ฐœ๋˜๋Š” ์‹œ์ ์— ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

<YouTubeIframe src="https://www.youtube.com/embed/TQQPAU21ZUw" />

**React ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ๋Š” ์•„์ง ์—ฐ๊ตฌ ๊ฐœ๋ฐœ ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค.** ์šฐ๋ฆฌ๋Š” ํˆฌ๋ช…์„ฑ์˜ ์ •์‹ ์œผ๋กœ React ์ปค๋ฎค๋‹ˆํ‹ฐ๋กœ๋ถ€ํ„ฐ ์ดˆ๊ธฐ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›๊ธฐ ์œ„ํ•ด ์ด ์ž‘์—…์„ ๊ณต์œ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆด ๊ฒƒ์ด๋ฏ€๋กœ **์ง€๊ธˆ ๋‹น์žฅ ๋”ฐ๋ผ์žก์•„์•ผ ํ•œ๋‹ค๊ณ  ๋А๋ผ์ง€ ๋งˆ์„ธ์š”!**
**React ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ๋Š” ์•„์ง ์—ฐ๊ตฌ ๊ฐœ๋ฐœ ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค.** ํˆฌ๋ช…์„ฑ์„ ์œ ์ง€ํ•˜๊ณ  React ์ปค๋ฎค๋‹ˆํ‹ฐ๋กœ๋ถ€ํ„ฐ ์ดˆ๊ธฐ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›๊ธฐ ์œ„ํ•ด ์ž‘์—…์„ ๊ณต์œ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆด ๊ฒƒ์ด๋ฏ€๋กœ **์ง€๊ธˆ ๋‹น์žฅ ๋”ฐ๋ผ์žก์•„์•ผ ํ•œ๋‹ค๊ณ  ๋А๋ผ์ง€ ๋งˆ์„ธ์š”!**

์ด๋ฅผ ํ™•์ธํ•˜๋ ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ˆœ์„œ๋กœ ์ง„ํ–‰ํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.
์ด๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์•„๋ž˜์™€ ๊ฐ™์€ ์ˆœ์„œ๋ฅผ ๋”ฐ๋ฅด๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค.

1. **๊ฐ•์—ฐ**์„ ์‹œ์ฒญํ•˜์—ฌ React ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ์— ๋Œ€ํ•ด ํ•™์Šตํ•˜๊ณ  ๋ฐ๋ชจ๋ฅผ ํ™•์ธํ•˜์„ธ์š”.

2. **[๋ฐ๋ชจ๋ฅผ ํด๋ก ](http://github.com/reactjs/server-components-demo)** ํ•˜์—ฌ ์ปดํ“จํ„ฐ์—์„œ React ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด์„ธ์š”.
2. <strong>[๋ฐ๋ชจ๋ฅผ ํด๋ก ](http://github.com/reactjs/server-components-demo)</strong>ํ•˜์—ฌ ์ปดํ“จํ„ฐ์—์„œ React ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด์„ธ์š”.

3. ์ž์„ธํ•œ ๊ธฐ์ˆ  ๋ถ„์„๊ณผ ํ”ผ๋“œ๋ฐฑ์„ ์ œ๊ณตํ•˜๋ ค๋ฉด **[RFC ํ™•์ธํ•˜๊ธฐ(FAQ๊ฐ€ ๋งˆ์ง€๋ง‰์— ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค)](https://github.com/reactjs/rfcs/pull/188)** ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.
3. ์ž์„ธํ•œ ๊ธฐ์ˆ  ๋ถ„์„๊ณผ ํ”ผ๋“œ๋ฐฑ ์ œ๊ณต์„ ์œ„ํ•ด <strong>[RFC(FAQ๊ฐ€ ๋งˆ์ง€๋ง‰์— ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค)](https://github.com/reactjs/rfcs/pull/188)</strong>๋ฅผ ์ฝ์–ด๋ณด์„ธ์š”.

RFC ๋˜๋Š” [@reactjs](https://twitter.com/reactjs) ํŠธ์œ„ํ„ฐ ๊ณ„์ •์—์„œ ์—ฌ๋Ÿฌ๋ถ„์˜ ์˜๊ฒฌ์„ ๊ธฐ๋‹ค๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. ์ฆ๊ฑฐ์šด ์—ฐ๋ง์—ฐ์‹œ ์•ˆ์ „ํ•˜๊ฒŒ ๋ณด๋‚ด์‹œ๊ณ  ๋‚ด๋…„์— ๋ต™๊ฒ ์Šต๋‹ˆ๋‹ค!
Loading
Loading