생각/react

React와 typescript와 next.js SSR

kyunghoonk00k 2023. 6. 16. 15:13
반응형

먼저, React와 TypeScript 및 Next.js를 사용하기 위해 필요한 패키지들을 설치해주세요.:

 
npm install --save react react-dom next
npm install --save typescript @types/react @types/node

그리고 최상위 폴더에 "tsconfig.json" 파일과 "next.config.js" 파일을 생성해주세요.

 

tsconfig.json 파일에는 다음과 같이 작성하세요.

json
{
  "compilerOptions": {
    "target": "esnext",
    "module": "esnext",
    "jsx": "preserve",
    "lib": ["dom", "esnext"],
    "moduleResolution": "node",
    "allowJs": true,
    "skipLibCheck": true,
    "esModuleInterop": true,
    "strict": true,
    "forceConsistentCasingInFileNames": true,
    "noEmit": true,
    "sourceMap": true,
    "resolveJsonModule": true,
    "isolatedModules": true,
    "downlevelIteration": true
  },
  "include": ["next-env.d.ts", "**/*.tsx", "**/*.ts", "**/*.d.ts"]
}

next.config.js 파일에는 다음과 같이 작성하세요.

javascript
const withTypescript = require('@zeit/next-typescript');
module.exports = withTypescript();

그 다음에, Next.js에서 pages 폴더를 생성하고 그에 상응하는 파일들을 생성하세요. 아래와 같은 구성의 index.tsx와 _document.tsx를 작성할 수 있습니다.

 
- pages
  - _document.tsx
  - index.tsx

pages/_document.tsx:

tsx
import Document, { DocumentContext, Html, Head, Main, NextScript } from "next/document";

class MyDocument extends Document {
  static async getInitialProps(ctx: DocumentContext) {
    const initialProps = await Document.getInitialProps(ctx);
    return { ...initialProps };
  }

  render() {
    return (
      <Html>
        <Head />
        <body>
          <Main />
          <NextScript />
        </body>
      </Html>
    );
  }
}

export default MyDocument;

pages/index.tsx:

tsx
import React from "react";
import Head from "next/head";

const Home: React.FC = () => {
  return (
    <div>
      <Head>
        <title>My SSR Application with React, TypeScript and Next.js</title>
      </Head>
      <h1>Hello, welcome to my example SSR Application!</h1>
    </div>
  );
};

export default Home;

이제 프로젝트를 시작하려면 최상위 폴더에서 다음 명령을 실행하세요:

 
npm run dev

이 예제 코드는 React, TypeScript, Next.js를 기반으로서 서버사이드 렌더링(SSR)을 제공합니다. 이를 통해 더 빠르고 최적화된 웹 애플리케이션을 보다 쉽게 구현할 수 있습니다.

반응형

'생각 > react' 카테고리의 다른 글

react소리 조절  (0) 2023.06.23
react + next.js + ts  (0) 2023.06.20
react-query useQueryErrorResetBoundary 사용 예제  (0) 2023.06.13
socket io 실시간 알림  (0) 2023.06.12
react-query 기능 모음  (0) 2023.06.08