inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스

24-05-custom-hooks-use-auth / custom-hooks-use-move-to-page

보다 직관적으로 수정하면 안되나요?

196

gkdlsb1234

작성한 질문수 14

0

interface IUseMoveToPageReturn {
  onClickMoveToPage: (path: string) => () => void
}

export const useMoveToPage = (): IUseMoveToPageReturn => {
  const router = useRouter()
  const onClickMoveToPage = (path: string) => () => {
    void router.push(path)

  }
  return {onClickMoveToPage}
}

위 처럼 작성 후

<button onClick={onClickMoveToPage("/markets")}>마켓 이동</button>

호출 할 수도 있지만

import { useRouter } from "next/router"
export const useMoveToPage = (path: string) => {
  const router = useRouter()
  return () => router.push(path)
}

보다 직관적으로 하면 인터페이스로 typescript 지정 안하고

<button onClick={useMoveToPage("/boards")}>게시판 이동</button>

호출해서 쓸 수 있지 않나요?

react node.js seo graphql next.js

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.
네, 말씀하신 방식대로 useMoveToPage 함수를 수정하여 사용하는 것은 더욱 직관적인 방식이 될 수 있습니다. 타입스크립트에서 인터페이스를 사용하지 않고 직접 함수를 정의하면 코드가 간결해지며 사용하기도 쉬워집니다. 하지만, 인터페이스를 사용하는 방식은 코드의 가독성과 재사용성을 높이며, 나중에 해당 함수를 다른 컴포넌트에서 사용할 때 예상 가능한 타입을 제공함으로써 오류를 줄일 수 있습니다. 따라서 어떤 방법을 사용할지는 프로젝트의 규모, 팀 내 코드 스타일 가이드, 재사용성 등을 고려하여 결정하는 것이 좋습니다.

fetchBoardsOfMine, fetchBoardsCountOfMine 에러 문의드립니다

0

40

1

댓글 기능 구현 중 질문드립니다.

0

66

1

쿠폰코드 발급

0

134

2

example 서버 플레이그라운드, API 접속 모두 안됩니다.

0

87

2

문의드립니다!! ㅠㅠ

0

102

2

graphql 백엔드 서버가 포폴용 빼곤 접속이 안됩니다.

0

77

2

_app.js 작성 이후로 에러가 발생하네요

0

94

2

학습자료

0

70

2

학습자료가 안열립니다.

0

50

2

플레이 그라운드 퀴즈 문제 질문이 있습니다.

0

61

0

기존강의 구매자, 업데이트 끝인가요?

0

110

3

업데이트 버전 수강

0

89

2

완벽한 프론트엔드

0

136

2

나만의 쇼핑몰 샘플 페이지 접속 확인부탁드립니다.

0

84

1

graphql 접속이 안됩니다.

0

100

2

const, let 사용 질문 드립니다.

0

70

2

싸이월드 만들기 1탄 피드백 부탁드립니다.

0

122

2

회원가입 과제 피드백 부탁드립니다.

0

80

2

styled.span / styled.input "CSS 자동완성"

0

47

1

쿠폰 발급 관련

0

166

2

서버 502 error

0

247

2

쿠폰 다시 부탁드려도 될가여?

0

140

2

a태그 패딩했을때 왜 크기가 줄어들지 않고 늘어나나요

0

185

2

2분 44초 질문

0

132

3