preconnect
preconnect
๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฆฌ์์ค๋ฅผ ๊ฐ์ ธ์ฌ ๊ฒ์ผ๋ก ์์ํ๋ ์๋ฒ์ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค.
preconnect("https://example.com");
๋ ํผ๋ฐ์ค
preconnect(href)
ํธ์คํธ์ ๋ฏธ๋ฆฌ ์ฐ๊ฒฐํ๋ ค๋ฉด, react-dom
์์ preconnect
๋ฅผ ํธ์ถํฉ๋๋ค.
import { preconnect } from 'react-dom';
function AppRoot() {
preconnect("https://example.com");
// ...
}
์๋ ์์๋ฅผ ์ฐธ๊ณ ํ์ธ์.
preconnect
๋ ๋ธ๋ผ์ฐ์ ๊ฐ ํด๋น ์๋ฒ์ ์ฐ๊ฒฐ์ ๋งบ์ด์ผ ํ๋ค๋ ํํธ๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋ธ๋ผ์ฐ์ ๊ฐ ํด๋น ์๋ฒ๋ฅผ ์ ํํ๋ฉด, ํด๋น ์๋ฒ์์ ๋ฆฌ์์ค๋ฅผ ๋ถ๋ฌ์ค๋ ์๋๊ฐ ๋นจ๋ผ์ง ์ ์์ต๋๋ค.
๋งค๊ฐ๋ณ์
href
: ๋ฌธ์์ด. ์ฐ๊ฒฐํ ์๋ฒ์ URL์ ๋๋ค.
๋ฐํ๊ฐ
preconnect
๋ ์๋ฌด ๊ฐ๋ ๋ฐํํ์ง ์์ต๋๋ค.
์ฃผ์ ์ฌํญ
- ๋์ผํ ์๋ฒ์ ๋ํด ์ฌ๋ฌ ๋ฒ์
preconnect
ํธ์ถ์ ํ ๋ฒ์ ํธ์ถ๊ณผ ๋์ผํ ํจ๊ณผ๋ฅผ ๊ฐ์ต๋๋ค. - ๋ธ๋ผ์ฐ์ ์์
preconnect
๋ ์ปดํฌ๋ํธ๋ฅผ ๋ ๋๋งํ ๋, Effect ๋ด๋ถ, ์ด๋ฒคํธ ํธ๋ค๋ฌ ๋ด๋ถ ๋ฑ ๋ชจ๋ ์ํฉ์์ ํธ์ถํ ์ ์์ต๋๋ค. - ์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง ๋๋ ์๋ฒ ์ปดํฌ๋ํธ๋ฅผ ๋ ๋๋งํ ๋,
preconnect
๋ ์ปดํฌ๋ํธ๋ฅผ ๋ ๋๋งํ๋ ๋์ ํธ์ถํ๊ฑฐ๋ ์ปดํฌ๋ํธ๋ฅผ ๋ ๋๋งํ๋ ์ปจํ ์คํธ์์ ์์๋ ๋น๋๊ธฐ ์ปจํ ์คํธ ๋ด์์ ํธ์ถํ ๋๋ง ํจ๊ณผ๊ฐ ์์ต๋๋ค. ๊ทธ ์ธ์ ํธ์ถ์ ๋ฌด์๋ฉ๋๋ค. - ํ์ํ ํน์ ๋ฆฌ์์ค๋ฅผ ์๊ณ ์๋ค๋ฉด, ๋ค๋ฅธ ํจ์๋ฅผ ํธ์ถํ์ฌ ๋ฆฌ์์ค๋ฅผ ์ฆ์ ๋ก๋ํ ์ ์์ต๋๋ค.
- ์น ํ์ด์ง ์์ฒด๊ฐ ํธ์คํ ๋๋ ๋์ผํ ์๋ฒ์ ์ฌ์ ์ฐ๊ฒฐํ๋ ๊ฒ์ ์ด์ ์ด ์์ต๋๋ค. ํํธ๊ฐ ์ฃผ์ด์ง ๋ ์น ํ์ด์ง ์์ฒด๊ฐ ์ด๋ฏธ ์ฐ๊ฒฐ๋์ด ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ฌ์ฉ๋ฒ
๋ ๋๋ง ์ ์ฌ์ ์ฐ๊ฒฐ
์์ ์ปดํฌ๋ํธ๊ฐ ํด๋น ํธ์คํธ์์ ์ธ๋ถ ๋ฆฌ์์ค๋ฅผ ๋ก๋ํ ๊ฒ์์ ์๊ณ ์๋ค๋ฉด, ์ปดํฌ๋ํธ๋ฅผ ๋ ๋๋งํ ๋ preconnect
๋ฅผ ํธ์ถํ์ธ์.
import { preconnect } from 'react-dom';
function AppRoot() {
preconnect("https://example.com");
return ...;
}
์ด๋ฒคํธ ํธ๋ค๋ฌ์์ ์ฌ์ ์ฐ๊ฒฐ
์ธ๋ถ ๋ฆฌ์์ค๊ฐ ํ์ํ ํ์ด์ง๋ State๋ก ์ ํํ๊ธฐ ์ ์ ์ด๋ฒคํธ ํธ๋ค๋ฌ์์ preconnect
๋ฅผ ํธ์ถํ์ธ์. ์ด๋ ๊ฒ ํ๋ฉด ์๋ก์ด ํ์ด์ง๋ State๋ฅผ ๋ ๋๋งํ ๋ ํธ์ถํ๋ ๊ฒ๋ณด๋ค ๋ ์ผ์ฐ ํ๋ก์ธ์ค๋ฅผ ์์ํ ์ ์์ต๋๋ค.
import { preconnect } from 'react-dom';
function CallToAction() {
const onClick = () => {
preconnect('http://example.com');
startWizard();
}
return (
<button onClick={onClick}>Start Wizard</button>
);
}