페블_
반짝이는 시냅스
페블_
전체 방문자
오늘
어제
  • 전체글 보기 (96)
    • QA (0)
    • 프로젝트 회고 (4)
    • 프로젝트 과정 기록 (12)
    • UI 구현 연구일지 (8)
    • Front-end (31)
      • Javascript (7)
      • CSS (10)
      • React (5)
      • Typescript (3)
      • Nextjs (3)
      • 스타일링 라이브러리 (3)
    • Back-end (0)
      • Express (0)
      • DB (0)
    • CS (0)
      • 자료구조 & 알고리즘 (0)
    • CI&CD (1)
    • 툴 사용법 (4)
      • Git (1)
      • Library&패키지 (2)
      • 기타 개발관련 (1)
    • 알고리즘 이론 & 풀이 (36)
      • 백준(BOJ) (14)
      • 프로그래머스 (22)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 생각
  • TypeScript
  • 파이썬
  • 알고리즘
  • Python
  • UI 컴포넌트
  • 캐러셀
  • react
  • 토이프로젝트
  • storybook
  • eslint
  • 선형대수학
  • 개발블로그_시작
  • 백준
  • chartjs
  • JS
  • emotion
  • 시리즈_표지

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
페블_

반짝이는 시냅스

프로젝트 과정 기록

[MUI] material-ui <Link> 컴포넌트에 React-router-dom의 Link 적용하는 법

2023. 7. 12. 19:07

개요

클라이언트 사이드 렌더링을 하고 싶은데 MUI에서 제공하는 Link 컴포넌트는 일반 href을 사용해서 화면이 깜박이고 이동이 느리다.

<Link href="/register" variant="body2" underline="hover" color="text.secondary">
  회원가입 하기
</Link>

그렇다고 react-router-dom의 Link를 사용하자니 MUI의 Link로 간편하게 스타일링한다는 장점을 잃어버리고 만다.

 

어떻게 하면 좋을까? 답은 바로 react-router-dom 상속하기이다.

 

react-router-dom의 Link 적용하기

material ui의 Routing libraries 문서를 보면 Link 컴포넌트에 third-party 라이브러리의 Link를 적용하는 방법을 설명하고 있다.

 

요약하면

  1. 먼저 MUI의 Link 컴포넌트로 평소처럼 스타일링해준다.
  2. react-router-dom의 Link를 중복 방지를 위해 RouterLink라고 이름붙여서 가져온다.
  3. Link에 component={RouterLink}를 전달해서 react-router-dom의 Link와 통합한다.
  4. href 대신 react-router-dom의 to로 바꿔준다.
import { Link } from '@mui/material';
import { Link as RouterLink } from 'react-router-dom';

function MyLink() {
    <Link
      component={RouterLink}
      to="/register"
      variant="body2"
      underline="hover"
      color="text.secondary"
    >
      회원가입 하기
    </Link>
}

'프로젝트 과정 기록' 카테고리의 다른 글

[JS] Chartjs 막대그래프 그리기 (별점 분포 차트)  (0) 2023.08.03
[React] 회원가입 유효성 검사 구현하며 겪은 시행착오와 react-hook-form 사용  (0) 2023.07.31
[React] 카카오 지도 API - 키워드로 장소 검색하고 목록으로 보여주기 구현 +) Typescript  (0) 2023.07.17
[CSS] Navbar 아랫부분의 그림자가 가려지지 않게 하는 법 +) 가상클래스, react-router-dom Outlet, MUI  (0) 2023.07.13
[MUI] material ui, emotion으로 global style 설정하기  (0) 2023.07.12
    '프로젝트 과정 기록' 카테고리의 다른 글
    • [React] 회원가입 유효성 검사 구현하며 겪은 시행착오와 react-hook-form 사용
    • [React] 카카오 지도 API - 키워드로 장소 검색하고 목록으로 보여주기 구현 +) Typescript
    • [CSS] Navbar 아랫부분의 그림자가 가려지지 않게 하는 법 +) 가상클래스, react-router-dom Outlet, MUI
    • [MUI] material ui, emotion으로 global style 설정하기
    페블_
    페블_

    티스토리툴바