[Next.js] Next.js 13.5 update!
๐ Next.js 13.5 realize!
Next.js 13.5 ๋ฒ์ ์ด ๋ฆด๋ฆฌ์ฆ ๋์๋ค.
์ด๋ค ๊ธฐ๋ฅ์ด ํฅ์๋์๋์ง ํ์ธ ๊ฒธ ์ ๋ฆฌํ๋ค.
1. ์์ ๋ฐ ์๋ก๊ณ ์นจ ์๊ฐ ๋จ์ถ
- ๋ก์ปฌ ์๋ฒ ์์ ์๊ฐ 22% ๋จ์ถ
- HMR ์๊ฐ 29% ๋จ์ถ
- ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋ 40% ๊ฐ์
๐ก HMR(Hot Module Replacement)? ๋ธ๋ผ์ฐ์ ๋ฅผ ์๋ก๊ณ ์นจํ์ง ์์๋ Webpack์ผ๋ก ๋น๋ํ ๊ฒฐ๊ณผ๋ฌผ์ด ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค์๊ฐ์ผ๋ก ๋ฐ์
2. next/image ๊ธฐ๋ฅ ํฅ์
unstable_getImgProps
ํจ์ ์ถ๊ฐ
๊ธฐ์กด์ next/image ๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด <Image>
์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํด์ผํ๋ค. ์ด๋ฒ ์
๋ฐ์ดํธ ๋ฒ์ ์ ๋ฐ๋ฅด๋ฉด <Image>
์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ์ง ์์๋, ์ด๋ฏธ์ง๋ฅผ ๋ ๋๋ง ํ ์ ์๋ค.
import { unstable_getImgProps as getImgProps } from "next/image";
export default function Page() {
const common = { alt: "Hero", width: 800, height: 400 };
const {
props: { srcSet: dark },
} = getImgProps({ ...common, src: "/dark.png" });
const {
props: { srcSet: light, ...rest },
} = getImgProps({ ...common, src: "/light.png" });
return (
<picture>
<source media="(prefers-color-scheme: dark)" srcSet={dark} />
<source media="(prefers-color-scheme: light)" srcSet={light} />
<img {...rest} />
</picture>
);
}
์ด ์ธ์๋ Import ์ต์ ํ ๋ฑ ์์ํ ์ ๋ฐ์ดํธ ์ฌํญ์ด ์์ง๋ง, ์ด ๋๊ฐ์ง๊ฐ ๊ฐ์ฅ ํฌ๊ฒ ๋์ ๋ค์ด์๋ค.
๋ ํ์คํ๊ฑด vercel์ด page ๋ผ์ฐํ ๋ณด๋ค app ๋ผ์ฐํ ์ ์ค์ ์ ๋๊ณ ์ ๋ฐ์ดํธ๋ฅผ ์งํํ๋ค๋ ๋๋์ ๋ฐ์๋ค.
app ๋ผ์ฐํ ์ ์ฌ์ฉ๋๋ ์ ์ ๋๊ณ ์๋๋งํผ app ๋ผ์ฐํ ๊ธฐ๋ฅ์ ์ ํ์ฉํ ์ ์๋๋ก ๊พธ์คํ ์ฌ์ฉํด ๋ณด์์ผ๊ฒ ๋ค.
๐ฌ ์ต์ ๋๊ธ