반응형
250x250
Notice
Recent Posts
Recent Comments
Link
관리 메뉴

짧은코딩

팁들(input, toast, Route, NavLink 등) 본문

인프런, 유데미/Slack 클론 코딩

팁들(input, toast, Route, NavLink 등)

5_hyun 2022. 7. 23. 19:27

input

리액트에서 input이 들어가면 웬만하면 컴포넌트로 빼는 것이 좋다. 안그러면 리렌더링이 너무 빈번하게 일어난다.

toast

만약 어떤 것을 하다가 에러가 발생하면 사용자들에게 알려주기 위해서 toast를 사용한다.

          toast.error(error.response?.data, { position: 'bottom-center' });

이 코드를 axios의 catch에 넣으면 된다.

Route

      <Route path="/workspace:workspace" component={Workspace} />
      <Route path="/workspace/slack" component={Workspace} />

첫번째 코드는 파라미터가 있는 주소이고 두번째는 아니다. 이렇게 하면 무조건 slack가 된다.

      <Route path="/workspace/salck" component={Workspace} />
      <Route path="/workspace:workspace" component={Workspace} />

따라서 파라미터가 있는 주소를 밑에 적어줘야 한다.

NavLink

<NavLink
    key={member.id} 
    activeClassName="selected"
    to={`/workspace/${workspace}/dm/${member.id}`}
>

그냥 Link와 비슷하다. 다른 점은 activeClassName을 줄 수 있다. 그래서 만약에 지금 주소와 링크의 주소가 같으면 activeClassName에 적어준 클래스가 부여된다.

이렇게 url과 하단에 나오는 주소와 일치하게 되면 클래스가 slected가 부여된다. 그렇기에 저 이름을 선택할 때 하이라이트 해주기 편하다.

swr과 props

대부분 데이터 관리를 할 때 swr로 하면된다. 하지만 2개 이상의 컴포넌트에서 사용할 때는 props를 사용하면 된다.

if문과 반복문 안에 hooks가 들어있으면 안된다.

728x90
반응형

'인프런, 유데미 > Slack 클론 코딩' 카테고리의 다른 글

여태까지 배운 내용 정리  (0) 2022.07.28
사소한 에러까지 잡는 법  (0) 2022.07.26
공통된 레이아웃을 사용할 때  (0) 2022.07.21
gravatar와 npm 설치시 @types의 유무  (0) 2022.07.21
mutate  (0) 2022.07.21
Comments