Skip to content

useEffect를 활용한 실시간 검색(디바운스 검색) #5

@baezy813

Description

@baezy813

💡디바운스란?

사용자의 빠른 입력 중복을 막기 위해 일정 시간 입력이 멈출 때만 함수를 실행하는 기법

디바운스를 사용해서 과도한 api 호출을 방지하고 실시간으로 검색을 할 수 있게 한다.

Image

  • 위 코드는 input이 실행될 때마다 실행된다.
  • 300ms를 기다렸다가 안이 함수를 실행한다.(디바운스)
  • 앞 뒤 공백 제거한 새로운 문자열 생성
  • 만약 공백이 아닌 실제 값이 있다면 입력된 검색어로 api를 호출해서 보여준다.
  • 근데 만약 검색어를 다 지우면 전체 InfoCard 리스트를 보여주도록 함

⏰ clearTimeout

사용자가 빠르게 검색하면 여러개의 타이머가 생겨버림 그래서 clearTimeout을 사용한다.
return () => clearTimeout(timer); : useEffect에서 타이머 중복 되지 않도록 정리해줌 즉 이전에 만든 타이머를 지운다.


참고 자료

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions