강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

원피스를 찾아서님의 프로필 이미지
원피스를 찾아서

작성한 질문수

[리뉴얼] React로 NodeBird SNS 만들기

게시글 불러오기

질문

작성

·

216

0

안녕하세요 제로초님!

게시판에서 검색기능까지는 구현을 했는데 버그를 발견하여 해결이 쉽지 않아서요……
현재 서버에서 받은 데이터를(검색을 해서받은 data) react에서 state로 관리중입니다.문제는
예를들어 검색창에 A 검색 후 두번째로  B를 검색 한 다음  뒤로가기 버튼을 클릭을 하면
A에 관련된 내용으로 랜더링이 되어야 정상이지만 검색해서 받은값은 한 state에서 관리하다 보니 B와 관련된
내용으로 랜더링이 됩니다.
이전 검색어값을 어디에 저장을 하면 될것은 같은데  한~두개정도는 가능할거 같은데 이전검색어가 많다면 복잡할 거 같아서요..혹시 좋은방법이 있는지 궁급합니다! 감사합니다.

답변 5

1

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

onBackButtonEvent = () => {
  // 여기
}

componentDidMount() {
  window.onpopstate = this.onBackButtonEvent;
}

이렇게 하시면 됩니다.

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

https://webdir.tistory.com/454

이런 식으로 가능한데 브라우저마다 다르네요.

0

혹시 번외적인 질문인데 특정버튼 클릭시에 북마크팝업(?) 뜨게하는 방법 없을까요???

단축키는 cmd + d 던데

0

답변 감사합니다. 현재 class형 react로만 구현중인데 혹시 뒤로가기 버튼 클릭시 state값을 변경할 방법이 있나요???♥

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

보통 한 번 서버로부터 받은 데이터는 메모리에 캐싱합니다. 캐싱은 직접 구현하셔도 되지만 swr같은 프론트 라이브러리를 쓰시는 게 좋습니다. state로 들고 있는 것은 그렇게 좋지 않습니다. 뒤로가기 같은 브라우저 동작이랑 충돌날 가능성이 높고, 직접 모든 것을 다 구현해야 하니까요.

swr같은 프론트 라이브러리로 프론트에서 캐싱하거나, 서버쪽에서 검색어별로 캐싱해두는 것이 좋습니다. 저는 swr 추천드립니다.

원피스를 찾아서님의 프로필 이미지
원피스를 찾아서

작성한 질문수

질문하기