전체 글52 SPA Route 일반적으로 spa에서 라우팅 구현은 window history 객체에 있는 pushState로 구현한다. history 객체에서 주소창을 바꾸는 메소드는 replaceState, pushState 2가지가 존재한다. 차이점은 replaceState는 뒤로가기가 활성화 되지 않고 주소창이 말 그대로 replace되는 것이며, pushState는 스택처럼 history가 쌓이는 구조이다. 그래서 spa구조에서 실제 라우팅 되는 것처럼 구현을 하려면 pushState를 사용해야 한다. (location.replace 는 아예 새로 페이지를 그리는 것이기 때문에 불가) pushState(state, unused, url) 문법은 다음과 같다. 전달하고 싶은 상태값을 state에 넣어주고, 변경하길 원하는 주소값.. 2022. 10. 6. 프리온보딩 프론트엔드 챌린지 3차 사전과제 - CSR(Client-side Rendering)이란 무엇이며, 그것의 장단점에 대하여 설명해주세요. 클라이언트 사이드 렌더링이란, 페이지를 렌더링 하는 모든 과정을 클라이언트(브라우저) 에 일임하는 것을 뜻한다. 전통적인 SSR 방식과는 다르게 최초 HTML 문서는 한번만 다운받게 되며, 이 HTML 문서를 렌더링 하기 위한 Javascript chunk 파일도 같이 다운로드 한다. 이후 사용자 인터렉션에 따라 사전에 정의된 javascript 코드를 통해서 virtual 렌더링이 일어나게 된다. - 장점: 매번 클라이언트 요청에 따라 전체 페이지를 렌더링 하지 않고, 페이지 일부분만 렌더링 하기 때문에 사용성 측면에서 장점을 가진다. 또한 전통적인 SSR과는 다르게 클라이언트 독립적으로 컴포넌트 단.. 2022. 9. 28. useQueryDebounce import { useState, useEffect } from 'react'; const useQueryDebounce = (value: string, delay = 200) => { const [debounceValue, setDebounceValue] = useState(value); useEffect(() => { const handler: NodeJS.Timeout = setTimeout(() => { setDebounceValue(value); }, delay); return () => { clearTimeout(handler); }; }, [value, delay]); return debounceValue; }; export default useQueryDebounce; 2022. 9. 5. 순열, 조합 구현 const getPermutations = function (arr, selectNumber) { const results = []; if (selectNumber === 1) return arr.map((el) => [el]); // n개중에서 1개 선택할 때(nP1), 바로 모든 배열의 원소 return. 1개선택이므로 순서가 의미없음. arr.forEach((fixed, index, origin) => { const rest = [...origin.slice(0, index), ...origin.slice(index+1)] // 해당하는 fixed를 제외한 나머지 배열 const permutations = getPermutations(rest, selectNumber - 1); // 나머지에 대해서.. 2022. 8. 27. 이전 1 2 3 4 ··· 13 다음