Intro 드롭 다운(Drop Down), 토글 메뉴(Toggle Menu), 슬라이드 메뉴(Slide Menu), 아코디언 메뉴(Accodian Menu) 등 다양한 이름으로 불리우는 것 같다. 하늘색 부분의 영역을 클릭하면 On/ Off 된다. 특정 아이콘 or 버튼을 삽입하여 그 부분만 클릭시 메뉴를 움직이도록 만들 예정이다. Code - styled-components를 사용했다. - 다른 페이지에서 사용하기 위해 슬라이드바를 컴포넌트 형식으로 따로 분리하여 파일을 작성했다. - 원래 슬라이드바 왼쪽에 다른 컴포넌트가 있는 부분을 고려하여 margin, padding 등의 css를 작성했다. 때문에 작동원리, 애니메이션 부분만 참고하시길 // SlideBar.jsx import React, { u..
환경변수 파일이란? - 애플리케이션이 실행될 때 특정 값을 넘길 수 있는 변수를 의미한다. 웹 애플리케이션 관점에서는 .env 파일에 정의된 변수를 의미하며, 미리 정의된 값을 애플리케이션에서 활용하고 싶을 때 사용한다. - API_KEY, DB 정보, TOKEN등 git, 오픈소스에 올리면 안되는 값들을 따로 저장하고 소스코드 내에서 하드코딩하지 않고 변수로 사용할 수 있다. .env 파일 생성하기 - 프로젝트 최상위 루트에 .env 파일을 생성한다. - 외부 파일(.env)에 환경변수를 정의하여 변수로 받아오면 보안과 유지보수가 용이하다. .env 사용하기 process.env.REACT_APP_ 는 예약어이므로, 다른 이름은 사용하면 React가 인식하지 못한다. 때문에 모든 환경변수 앞에 REAC..
React로 프로젝트를 진행하던 중 CodePen 사이트에서 괜찮은 코드를 참조하거나 가져오고 싶은 경우가 있다. 하지만 CodePen에 있는 대부분의 코드들은 html, JavaScript, CSS로 코드가 짜여져 있는 경우가 많아 React 프로젝트에 바로 적용하기는 어려움이 있다. 그래서 iframe 태그를 활용하여 CodePen의 코드들을 그대로 가져와 사용해보려고 한다. 태그 HTML 요소는 중첩 맥락을 나타내는 요소로, 현재 문서 안에 다른 HTML 페이지를 삽입한다. 즉, html안에 또다른 html을 넣을 수 있다. https://developer.mozilla.org/ko/docs/Web/HTML/Element/iframe 적용하기 1. CodePen에서 사용하고자 하는 코드를 고른다. ..
Material UI의 캐러셀을 활용하려다가 React Slick을 많이 사용하는거 같아 사용해보았다. 설치 사용하기에 앞서 공식 사이트를 참고하여 설치를 한다. https://react-slick.neostack.com/docs/get-started Neostack The last react carousel you will ever need react-slick.neostack.com npm install react-slick --save 기본 틀 여러가지 종류의 스타일이 있는데 Multiple items 라는 이름의 스타일을 사용했다. https://react-slick.neostack.com/docs/example/multiple-items/ Neostack The last react carouse..
Test 용도로 임시로 만들었기 때문에 완성되지 않았다. 커서가 있는 input 창에 검색어를 입력하면 카드의 본문의 내용중에 해당 키워드를 포함한 카드만 필터링해준다. (엔터나 버튼을 누를 필요 없이, 키워드의 변화(onChange)를 감지하여 즉각 필터링해준다) // Search.tsx import React, { useState, useEffect } from "react"; import Poster from "./Poster"; import "./Search.scss"; function Search() { const [userInput, setUserInput] = useState(""); // 입력값을 가져와서 소문자로변경 및 통일한다. const getValue = (e: any) => { s..
Fragment란? React에서 컴포넌트가 여러 엘리먼트를 반환하는 패턴을 자주 볼 수 있다. Fragments는 DOM에 별도의 노드를 추가하지 않고 여러 자식을 그룹화할 수 있다. 다음은 Fragment을 사용하는 방법이다. Fragment 안에 render하고 싶은 child를 넣어주면 된다. // Fragment의 기본 구조 render() { return ( ); } example 더 정확한 이해를 위해 예시를 통해 알아보자. 예를 들어, 아래와 같이 table에 ‘Hello World’를 출력하고 싶다고 가정한다. Hello World 우리가 위와 같이 출력하고자 하는 경우 아래와 같이 Table과 Columns를 구분하여 생성한 후 Table안에 Columns를 생성하고자 할 것이다. cl..
차이점 onKeyUp, onKeyDown 키를 누르고 떼는 동작 자체에 반응한다. 인식 가능 : 문자, 숫자, Ctrl, Shift, Alt, F1~F12, Scroll Lock, Pause, Enter 인식 불가능 : 한/영, 한자, Print Screen onKeyUp, onKeyDwon는 keycode를 사용하여 특수키를 제외한 모든 키를 인식한다. onKeyPress 실제로 문자가 입력되었을 때 반응한다. 인식 가능 : 문자, 숫자 인식 불가능 : Ctrl, Shift, Tab, Alt, F1~F12, Scroll Lock, Pause, Enter, 한/영, Print Screen onKeyPress는 ASCII 값으로 사용되서 shift, ctrl 같은 키는 인식하지 못한다. keyCode //..
프로젝트를 진행하면서 크롬 개발자 도구에서 console.log()를 확인할 경우 console 창에 2번 출력되는 경우가 있다. 왜 2번씩 출력되는 것인가? 그 이유를 구글에서 확인할 수 있었다. Strict Mode console.log가 2번 출력되는 이유는 프로젝트의 src/index.js 파일에서 태그 때문이다. StrictMode는 애플리케이션 내의 잠재적인 문제를 알아내기 위한 도구이다. Fragment와 같이 UI를 렌더링하지 않으며, 자손들에 대한 부가적인 검사와 경고를 활성화한다. 즉, 잠재적인 문제가 있는지 확인하기 위해서! 또한, Strict 모드는 개발 모드에서만 활성화되기 때문에, 프로덕션 빌드에는 영향을 끼치지 않는다. ★ StrictMode는 아래와 같은 부분에서 도움이 된다..
구글폰트를 적용하는 방법은 2가지가 있다. import로 불러와 적용하는 방법 다운로드 받은 후 프로젝트 안에 폰트를 넣는 방법 1번의 방법은 매번 import 해오기 때문에 랜더링시 좀 더 느리다고 한다. 때문에 직접 다운로드하여 사용하는 방법을 적용 해보기로 했다. 1. 구글 폰트 사이트에서 원하는 폰트를 선택하여 다운받는다. 구글 폰트 사이트 : https://fonts.google.com/ 2. 폰트를 모아놓을 폴더를 만들어 저장한다. 폴더 위치는 자유롭게 가능하다. ex) src/fonts/폰트.ttf 3. App.css 파일 안에 사용할 폰트들을 불러온다. 저장한 font를 어디에서나 사용할 수 있게 최상단 파일인 App에 정의했다. @font-face { font-family: [사용할 폰트..