TIL # 9

정승옥(seungok)·2021년 3월 30일
0

TIL

목록 보기
9/16
post-thumbnail

1. Global Style & ThemeProvider

  • createGlobalStyle 컴포넌트와 styled-resetreset 을 통해 reset.scss 대신 전역으로 css 를 초기화할 수 있다.
  • themeProvider 컴포넌트의 theme 속성에 객체로 정의된 css 속성 값들을 넣어주면 공통된 css 속성을 전역에서 사용할 수 있다.

2. 카카오 지도 API

2-1. API 요청 세팅

<script type="text/javascript" src="//dapi.kakao.com/v2/maps/sdk.js?appkey=발급 받은 key"></script>
  • 카카오 Developers 에서 발급받은 key 를 위 스크립트의 appkey 부분에 붙여주면 지도 API 를 요청할 수 있다.
  • useEffect 함수를 사용해 컴포넌트가 마운트 된 후 new kakao.maps.Map(엘리먼트 요소, 옵션) 을 통해 카카오 지도를 생성할 수 있다.
  • const { kakao } = window; 을 선언하지 않으면 리액트에서 인식을 못하기 때문에 반드시 선언해줘야한다.
  • 추가로! 사이트 도메인 또한 등록해야 최종적으로 카카오 지도 API 를 요청해 사용할 수 있다.

2-2. 검색리스트 필터링

  • 카카오 API 에서 제공하는 검색 기능에서 생성자 함수 kakao.maps.services.Places()의 인스턴스의 keywordSearch 메소드에 첫번째 인자로 검색한 문자열 값, 두번째 인자로 실행함수를 넣어준다.
  • 두번째 실행함수에서는 매개변수로 검색한 결과에 대한 데이터, 통신 상태, 페이지네이션 값을 받는다.
  • 페이지네이션을 제외하고 받은 통신 상태와 데이터 값을 통해 검색 리스트를 보여주는 기능을 구현했다.
  • exceptCategory 는 카카오에서 설정한 카테고리별 그룹으로 코드를 정한 값들 중 검색에 필요없는 카테고리 그룹들을 정리해놓은 배열이다.
  • 검색결과 중 같은 코드가 배열 안에 있을 경우 false , 없으면 true 를 통해 필터링을 했다.

2-3. 마커 클러스터러 사용하기

  • MarkerClusterer 생성자 함수를 통해 클러스터러 인스터스를 만들어준다.
  • 인자 값으로 객체를 넣고 객체 안에서 마커 클러스터러에 대한 초기세팅을 설정할 수 있다.
  • averageCenter : 마커들의 좌표 평균을 클러스터 좌표로 설정할지 여부를 정한다.
  • minLevel : 클러스터할 지도의 최소 레벨 값을 정해 설정 레벨 미만에서는 클러스터링을 하지 않는다.
  • styles : 클러스터 마커의 스타일을 설정할 수 있다.
  • minClusterSize1 로 설정하지 않으면 일정 범위 안에 있지 않은 클러스터 마커들을 기본 마커로 변하기 때문에 확대를 해도 클러스터 마커를 유지하기 위해서는 1 로 설정해야한다.
  • 추가적으로 특정 클러스터의 색상이 변하는 효과를 구현해야하는데 이 부분은 공식문서를 보면서 진행해야할 것 같다.

2-4. Range Slider 라이브러리

  • 가격 범위를 양쪽에서 정하는 기능에 대해 직접 구현하는 예제를 아직 못 찾아서 현재 Material-UISlider 라이브러리 기능을 사용했다.
  • withStyle 함수 안에 style 을 정의할 수 있고 Slider 컴포넌트를 넣어주면 PriceSlider 과 같이 원하는 변수명의 컴포넌트를 사용할 수 있다.
  • onChange 속성에 선언한 함수를 넣어 매개변수로 배열 형태의 value 를 받아올 수 있다.
profile
Front-End Developer 😁

0개의 댓글