전체 글
-
[JS] 내가 몰랐던 ES6 최신문법Java Script & Type Script 2023. 7. 10. 11:41
ES6의 큰 특징으로 유명한 것들 말고, 찐으로 내가 몰랐던 문법들이다. 나머지 매개변수 function func(a,b,c, ...args){ console.log(...args) } func(1,2,3) func(1,2,3,4,5,6,7) /// 매개변수로 더 많은 파라미터들이 들어올 수 있다는 의미 일급객체로서의 함수 // 1. 변수에 함수를 할당할 수 있다. -> 함수가 마치 값으로 취급, 함수가 나중에 사용될 수 있도록 조치가 되었다. const sayHello = function () { console.log("hello") } // 2. 함수를 인자로 다른 함수에 전달할 수 있다. function callFunction(func) { func() // 매개변수로 전달받은 변수가 사실 함수다...
-
-
[TS] 엔터쳐서 실행하기 유틸함수 만들기Java Script & Type Script/Favorites 2023. 7. 4. 09:35
e.key 가 "Enter" 일 때 실행 할 함수를 넣을 수 있다. const enterPressHandler = (e: any) => { if (e.key === "Enter") { searchHandler(); // 이게 실행할 함수 } }; ... setSearchKey(e.target.value)} value={searchKey} onKeyDown={enterPressHandler} /> + 23/12/24 추가 export const enterToProcess=( e : any, func: ()=>void )=>{ if (e.key === "Enter") { func(); } }; 내 생각엔, 이렇게 util 함수로 빼놓고 파일 전체에서 불러서 써도 될 것 같다. 다져다 쓸 땐 이런식으로!! e..
-
[REACT] 데시벨측정 자동녹음종료기능 custom hookJava Script & Type Script/Favorites 2023. 6. 25. 16:22
이건 녹음 중에 사용자가 말을 멈춘 것이 감지되면 녹음을 자동으로 종료하는 기능이다. 하루하고 반나절을 걸려서 만들었다😭 분명 더 효율적인 방법이 있을 것 같은데 다른 사람들이 올려놓은 코드 이해도 못하고 갖다 쓰기 싫어서 그냥 만들었다. 1. 가장 먼저, 처음엔 컴포넌트로 recordWithDecibel을 만들어 데시벨이 잘 측정되는지를 확인했다. 신기한 것은? 여기서 mediaRecorder를 쓰지 않음 리액트의 기능만으로 구현됨 2. 녹음시작 후 데시벨이 잘 측정되는것이 확인된 후, return아래 jsx를 다 떼고 컴포넌트에서 커스텀 훅으로 만들었다. 이것이 바로 그 커스텀 훅. // useRecordWithDecibel.ts import React, { useEffect, useRef, useS..
-
[React] 네이버 자동로그인 따라하기Java Script & Type Script/Favorites 2023. 6. 19. 14:23
자동로그인기능을 넣어달라는 요청을 받았다. 어떻게 구현할 수 있을지 고민하다가 네이버를 뜯어보기로 했다. 네이버 로그인시에 auth라는 요청이 생긴다. 페이로드는 이렇게 생겼다. revalidateOnReconnect 이걸로 자동로그인을 결정하는가했더니 아니었음 자동로그인 체크 한거랑 안한거 둘 다 false로 보내주고있음. 네이버도 쿠키로 로그인JWT토큰을 저장하는데 Max-age를 컨트롤해서 자동로그인 or 일회성 로그인을 하고있었던 것을 발견했다 자동로그인을 안하면 NID-JKL, NID_SES, NID_AUT 이 세개가 "세션"이고 자동로그인 하면 NID-JKL, NID_SES, NID_AUT 이 세개가 max-age가 생기는걸 알 수 있다. 했을 때 , 안했을 때 토큰을 뜯어보니 똑같았다. 하나..
-
[Library] React-slick, Apex-charts 라이브러리 이용법 -리액트로 캐러셀 구현, 도넛그래프, 반원그래프, 오각형그래프, 막대그래프 그리기Java Script & Type Script/Favorites 2023. 6. 15. 14:54
이번 프로젝트에서 react-slick을 이용해 캐러셀을 구현하였고, apex-charts를 이용해 그래프를 그렸다. react-slick import import "slick-carousel/slick/slick.css"; import "slick-carousel/slick/slick-theme.css"; 세팅을 만들어준 다음, 태그에 세팅을 넣어준다. const StoryPageFinder: Settings = { slidesToShow: 5, arrows: true, nextArrow: , prevArrow: , infinite: false, vertical: true, slidesToScroll: 3, speed: 600, }; ... styled components에서도 이게 지원됨 Styled..
-
-
-
리액트쿼리 연습하기카테고리 없음 2023. 5. 2. 23:02
React Query https://tanstack.com/query/v4/?from=reactQueryV3&original=https://react-query-v3.tanstack.com/ TanStack Query | React Query, Solid Query, Svelte Query, Vue Query Powerful asynchronous state management, server-state utilities and data fetching for TS/JS, React, Solid, Svelte and Vue tanstack.com 리액트쿼리는 기존의 client state를 다루는 상태관리 라이브러리들과 다르게 sever state를 Fetching, Caching, 비동기적으로 업데이트 ..
-
리액트 렌더링 순서 & 커스텀훅과 유틸함수카테고리 없음 2023. 5. 2. 09:09
console.log(3) //side effect const A = () => { //mount console.log(1) //update useEffect(()=> { console.log(4) },[]) //render return ( {console.log(2)} 1 ) } //31241 리액트 렌더링의 순서 mount -> render -> update -> mount (상태가 업데이트되면 mount가 다시 이뤄진다.) 마운트되는 상황 1. 부모컴포넌트의 update 2. 전역상태가 바뀜 3. 내부상태가 바뀜 4. 프롭스가 변경됨 side effect 함수가 실행되면서 함수 외부에 존재하는 값이나 상태를 변경시키는 등의 행위 React에서는 side-effect처리를 위해 useEffect()함..
-
[React] Recoil 설정과 대표 기능 소개Java Script & Type Script 2023. 4. 29. 16:10
1. recoil install yarn add recoil 2. index.js에 Recoil Root 추가하기 import { RecoilRoot } from "recoil"; const root = ReactDOM.createRoot(document.getElementById("root")); root.render( ); 3. recoil폴더를 만들고 Atom.jsx import { atom } from "recoil"; export const Atom = atom({ key: "textState", // 유니크한 이름 짓기 default: { name: "LeeCJ", age: 30, }, // default value (aka initial value) 이니셜스테이트 }); default에 초깃..
-
[React] 리팩토링 - 컴포넌트 역할 분리Java Script & Type Script/Favorites 2023. 4. 20. 16:37
컴포넌트를 분리하여 구조를 개선을 하는 이유: 코드의 가독성과 유지보수성을 향상시켜 코드 퀄리티를 올리기 위해 면접을 보러갔다가 컴포넌트 구조와 관련해서 좀 더 개선해보면 좋을 것이라는 조언을 받았습니다. 어제 하루는 FE팀원들과 상의하여 어떤 방식의 컴포넌트 구조가 좋은 것인지 각자 찾아보고 고민하는 시간을 가졌고, 오늘부터 수정을 시작했습니다. 리액트 공식홈페이지에서는 아래와 같이 컴포넌트를 표현하고있습니다. Components let you split the UI into independent, reusable pieces, and think about each piece in isolation. 컴포넌트는 UI를 독립적이고, 재사용 가능한 부분으로 분리해주며 각각을 고립시켜 생각할 수 있게 해줍니..