본문 바로가기
Next.js

[next.js] Head 컴포넌트와 구글폰트 적용하기

by 남민섭 2023. 12. 4.
728x90
반응형

<Head>

각 페이지별로  타이틀, 파비콘, 오픈그래프 속성, 메타데이터, 스크립트 등등 정의할 수 있다 

각 페이지의 SEO(검색 엔진 최적화) 최적화

 

페이지 전체에 공통으로 적용하고 싶으면 _app.js에 Head 컴포넌트 적용

_app.js

 <>
  <Head>
    <title>메인페이지</title>
    <link rel="icon" href="/favicon2.ico" />
    <style></style>
  </Head>
</>

 

각 페이지 별로 Head 컴포넌트 적용하고 title 변경해주면 페이지 변경할 때 페이지 이름이 변경된다

 

메타데이터와 외부 리소스 설정 & 연결

import Head from 'next/head';

function HomePage() {
  return (
    <>
      <Head>
        <title>Home Page</title>
        <meta name="description" content="This is the home page" />
        <link rel="stylesheet" href="https://example.com/styles.css" />
        <script src="https://example.com/script.js" />
      </Head>
      {/* 페이지 내용 */}
    </>
  );
}

 

 


폰트 적용

기존에 자바스크립트나 리액트, css에서 적용한 방법대로도 가능

<link>나 @import

 

구글폰트 적용방법

Next.js는 구글 폰트 기능을 제공함

 

_app.js 에 적용하기

import { Noto_Sans_KR } from '@next/font/google';

const notoSansKR = Noto_Sans_KR({
  weight: ['400', '700'],  //문자열로 넣기
  subsets: [],        // 한글인지 영문인지
  style:'nomal', //'normal', 'italic 생략해도됨
});

 

Noto Sans Kr 폰트를 가져왔고 

weight는 폰트 굵기이다.(숫자가 아닌 문자열 형태로 적어야한다)

subsets는 영문이나 한글 등 사용할 글자들만 골라서 사용할 때 씀

( ex) 영문만 사용할거면 ['latin'] 같이 써주면된다)

 

notoSansKR 객체의 className 프로퍼티로도 사용 가능

<div className={notoSansKr.className}>
</div>

 

Head 컴포넌트를 사용햐여 전역으로 전달도 가능

<Head>
  <style>{`
    html {
      font-family: ${notoSansKR.style.fontFamily}, sans-serif;
    }
  `}</style>
</Head>

 

728x90
반응형

댓글