React ) html파일 렌더링하기, script 태그 사용하기

퍼블리싱을 받았는데, noscript와 script 태그를 사용한 부분이 있었다. 문제는 리액트에선 두 태그를 사용하기가 까다롭다는 것… 그래서 아예 html파일을 만들고, 해당 파일을 iframe으로 렌더링하기로 했다. html 예시 iframe을 이용해 렌더링하는 법

Read more
react-id-swiper 라이브러리 인스턴스, 자동재생 컨트롤 다루기

슬라이더 구현에 react-id-swiper 라이브러리를 사용하게 되었다. 자동재생을 멈추고 다시 재생시키는 컨트롤 기능을 구현해야하는데 문서를 찾아봐도 react에서 인스턴스 생성하는게 없었고, useRef를 이용해도 계속해서 null값만 들어왔다. 그러던 중, github에서 해답을 찾았다. (출처 : https://github.com/kidjp85/react-id-swiper/issues/20) 나도 해당코드를 사용해서 메소드로 자동재생을 컨트롤 할 수 있었다. 사용예시

Read more
React ) useScroll / 노마드코더말고 직접 만든 스크롤 훅

섹션마다 스크롤 이벤트를 더해야해서 custom hook으로 만들어봤다! 노마드 코더와 다른 점은 element가 정해진 지점에 오게되면 true를 반환해서 해당 컴포넌트에서 스타일을 더하게된다. (이건 각자 css에서 정하면 된다 나같은 경우는 fade in) useScroll 사용예시

Read more
React ) \n 을
태그로 렌더링하기

api로 받은 데이터에 \n이 포함되어있는데, 받은 그대로 렌더링을 하면 줄바꿈이 되지 않는다. 그럴 땐 \n을 기준으로 split하여 배열을 생성하고, 렌더링 하면된다.

Read more
자바스크립트 빈 객체 체크하기

자바스크립트에서 빈 객체를 체크하는 법 빈객체는 null, undefined, length로 체크를 할 수 없기 때문에 객체의 속성을 배열로 만드는 Object.keys()함수를 사용해서 빈 객체를 체크한다. 사용예시

Read more
axios request마다 authorization 업데이트 하는 방법 ( interceptor )

프로젝트를 진행하는데 api마다 axios의 headers를 import해서 사용하였다. 그런데 그렇게 사용하다보니 axios가 header를 매번 update하지 않아서 authorization이 제대로 되지 않았다. 예를 들면, 로그인 하기 전의 token value를 가지고 있어서 로그인 하고 나서 새로고침 하기 전까지는 authorization이 undefined or null 값이 들어가게 되었다. 그래서 막 찾다보니 axios.interceptor로 이슈를 해결할 수 있었다. interceptor는 axios가 request가 발생할 때마다 작동하게 […]

Read more
React ) axios로 엑셀 파일 다운로드

먼저 axios로 파일 다운로드를 요청할 때, responseType을 arraybuffer로 지정해준다. 2. request를 받아 Blob 객체를 만든다. 이때 백에서 heades에 content-type과 encoded-disposition에 파일의 정보를 담아 보내주어야 한다. content-type을 Blob 객체를 선언할 때 type을 정의하는데 만약 항상 고정되어 있는 타입을 받아온다면 하드코딩으로 해도 된다. encoded-disposition은 파일의 이름을 지정할 때 쓰인다. 경우에 따라 디코딩을 해야한다(예시에 방법기재) 주의할 점 : […]

Read more
React Apollo 예시 간단하게 정리해보기

노마드코더에서 우버클론코딩을 하면서 GraphQL, Apollo를 배우고 있다. Typescript와 함께 쓰면서 백엔드와 타입을 일치시켜서 보호하는 법도 배워서 매우 유용하다 생각해서 정리를 해보려고 한다! Apollo만을 정리하기 때문에 GraphQL서버는 이미 구현되어있다고 가정을 한다. set up 2. apollo client 파일 생성(이름은 마음대로) Apollo client를 생성할 때는 uri, cache가 기본으로 요구된다. 해당 코드에서는 link를 사용했는데 그 이유는 header에 token을 넣고 […]

Read more