์ํฉ
next.js์์๋ SSR์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ url์ ์๋ query๋ฅผ ๋ฐ์์ฌ ์๊ฐ ์๋ค.
ํด๊ฒฐ 1
next page์์ getServerSideProps ํจ์๋ฅผ ์ด์ฉํด query๋ฅผ ๋ฐ์์ฌ ์ ์๋ค.
const Page: NextPage = ({ params }) => {
}
export async function getServerSideProps (context) {
const req = context.req;
const params = new URLSearchParams(req._parsedUrl.query);
return { props: { params } };
}โ
ํด๊ฒฐ 2
ํด๊ฒฐ 1์ ๋ฐฉ๋ฒ์ผ๋ก page ๋ด๋ถ์์๋ url parameter๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
ํ์ง๋ง _app.tsx์ ๊ฐ์ด next page ์ด์ ์ ์ปดํฌ๋ํธ์์ device๋ฅผ ํ๋จํด์ผ ํ๋ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ ๊น?
next ๊ณต์ ๋ฌธ์ ์ ๋์์๋ฏ์ด _app.tsx์์๋ ๋ค๋ฅธ ํจ์๋ค์ ์ฌ์ฉํ ์ ์๊ณ ์ค๋ก์ง getInitialProps๋ง ํจ๊ป ์ฌ์ฉํ ์ ์๋ค.
๋ฐ๋ผ์, ๋ค์๊ณผ ๊ฐ์ด ์ฝ๋๋ฅผ ๊ตฌ์ฑํ๋ฉด ๋๋ค.
import App from 'next/app';
function MyApp ({ Component, pageProps, params }) {
}
MyApp.getInitialProps = async (context) => {
const { ctx } = context;
const params = new URLSearchParams(ctx?.req._parsedUrl.query);
const appProps = await App.getInitialProps(context);
return { ...appProps, params };
};
๋ฐ์ํ
'์น (WEB) > ๊ณต๋ถ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
React ๊ณต์ ๋ฌธ์ ๋ค์ ์ฝ๊ธฐ (1. Main concepts) (0) | 2022.01.31 |
---|---|
Open Graph ์ดํดํ๊ณ ์ ์ฉํ๊ธฐ (feat. ์นด์นด์คํก์์ ๋ณ๊ฒฝ์ด ์ ์ฉ๋์ง ์์ ๋) (1) | 2022.01.09 |
CSS ์ ์ฉ๊ณผ์ :: cascade, specificity, inheritance์ ๊ดํ์ฌ (0) | 2021.10.17 |
Javascript ๊ธฐ๋ณธ :: declare (Typescript์์ type ์์ ๋) (4) | 2021.09.22 |
CommonJS vs ES Modules (0) | 2021.09.22 |
Comment