-
[React] vite + ts에서 svg component 사용하기React 2023. 1. 30. 14:34
vite-plugin-svgr 라이브러리를 사용하여 svg 파일을 리액트 컴포넌트로 변환할 수 있다.
npm i -D vite-plugin-svgr yarn add -D vite-plugin-svgr
// vite.config.js import svgr from 'vite-plugin-svgr' export default { // ... plugins: [svgr()], }
import { ReactComponent as Logo } from './logo.svg'
ts에서 사용하려면 추가적으로 설정을 해야한다.
// vite-env.d.ts /// <reference types="vite-plugin-svgr/client" />
// svg.d.ts declare module "*.svg" { const content: React.FC<React.SVGProps<SVGElement>>; export default content; }
// tsconfig.json { "include": ["svg.d.ts"], }
.d.ts 파일은 기존 js 모듈을 ts에서 사용할 수 있도록 타입을 정의할 수 있는 파일이다.
모든 svg 파일에 React.FC<React.SVGProps<SVGElement>> 타입을 정의하여 ts에서 알리는 코드이다.
반응형'React' 카테고리의 다른 글
[React] framer-motion staggerChildren 사용 (0) 2023.03.29 [React] useCallback으로 useEffect 무한루프 방지 (0) 2023.01.12 [React] 검색어 자동완성 키보드 이벤트 기능 구현 (0) 2023.01.05 [React] 별점 기능 구현 (0) 2022.12.14 [React] 함수형 컴포넌트와 함수 컴포넌트 (0) 2022.11.09