본문 바로가기
[css] loading bar css with tailwind, 로딩이 필요한 경우 (ft. tailwind) tailwind, css로 작업한 간단한 로딩바입니다. 구현 화면 구현 영상 로딩이 필요한 이유 loading은 보통 결과값이 도출 되기 이전에 몇 초 동안 실행하여 사용자가 대기중 임을 인지할 수 있도록 UX로서 필요합니다. 또한 react에서 비동기로 데이터를 가지고 올 경우, 결과 값에 데이터가 들어오기 전에 화면이 먼저 렌더링 되면서 null값인 상태에 에러를 발생시키므로 결과값에 데이터가 들어오기 전에는 loading을 실행하여 에러를 방지합니다. html css /* spinner */ .loader { border-top-color: #FFE9A4; -webkit-animation: spinner 1.5s linear infinite; animation: spinner 1.5s linear ..
[js] TypeError: Cannot read property 'x' of undefined (ft. javascript, react) TypeError: Cannot read property 'x' of undefined 오류 해결입니다. 자바스크립트 또는 리액트에서 정말 자주 보게되는 오류 입니다. 어느 사이트에 의하면, Cannot read property 'x' of undefined, Cannot read property 'x' of null 이 자바스크립트의 오류 1위의 오류 문구 였습니다. 오류 메시지 Cannot read property 'x' of undefined api 비동기 처리로 데이터를 출력하면서 렌더링을 하는데 문제는 컴포넌트가 데이터가 나오기 전에 렌더링 되거나, value 자체가 없는 문제입니다. 오류 해결 문제가 되는 부분에 ?. 연산자를 이용하여 코드를 수정하면, 에러가 사라집니다. {!resultDat..
[vscode] visual studio thunder 사용법 (ft. postman) vs code의 postman, thunder 사용법입니다. thunder api 요청에 대한 결과를 테스트 하기 위한 postman을 대신 할 수 있는 visual studio code 플러그인 vs code에서 thunder 설치 방법 thunder 사용 방법 사용방법은 postman과 같이 GET/POST/DELETE/PUT 에서 선택하여 api url 주소를 입력한 후, Send를 선택하면 오른쪽 reponse 창에 결과값이 출력됩니다. post 사용시, parmeter는 아래 Body tab 선택 후 입력하고, Send를 선택하면 됩니다.
[react] Next.js에 global 폰트 삽입하기 (ft. index.html 역할) Next.js에 embed link 적용하는 법입니다. 보통은 index.html 파일에 태그 안에 cdn 코드를 적용하여 폰트 또는 폰트 어썸의 아이콘 등을 삽입하는데, Next.js 는 index.html 파일이 없습니다. Next.js의 기본 구조를 확인하여, cdn 설치하는 방법을 알아보겠습니다. Next.js 폴더 기본 구조 pages/ // HTML, Container, router를 이용하는 페이지 삽입 _document.js // HTML document _app.js // container 공통으로 적용되는 레이아웃, dependency 설치, react의 app.js _error.js // Error 페이지 index.js // Root 페이지 '/'의 path를 가진 페이지 hello..
[react] react hooks로 form 구현 (ft. input이 많을 때) react hooks로 form을 구현하는 가장 효과적인 방법입니다. 구현 화면 react hooks에서 form 구현 방법 admin 페이지에서 가장 많이 사용되는 form을 구현할 때는 수많은 input 또는 select 태그에 입력한 내용을 전달하는 것이므로 각 하나의 항목마다 useState를 일일이 전달하는 것이 아니라, input 태그에 name 속성을 지정한 후, 아래와 같이 { }, 객체 안에 name : value 형식으로 모든 데이터를 전달하여 한번에 관리하는 것이 편합니다. const [myData, setMyData] = useState({}); setData({...data, [e.target.name]: e.target.value }); code import React, { us..
[js] alert, console.log 출력시 [object Object] 오류 해결 방법 alert 출력시 [object Object] 오류 해결 방법입니다. alert, console.log 출력시 [object Object] 오류 자바스크립트에서 json 형태의 data를 alert(data) 또는 console.log(data)로 출력시 [object Object] 라고 나오게 됩니다. alert, console.log 출력시 [object Object] 해결 방법 오류는 아니지는 이를 우리가 읽을 수 있는 형태로 출력하려면 json 형태에서 json.stringify() 메소드를 이용하여 객체를 json화 시켜야 합니다. alert(JSON.stringify(data)); console.log(JSON.stringify(data)); json.stringify() 자바스크립트 파일 내..
mac, window 개발자 도구 단축키 개발자 도구 화면 맥 개발자 도구 단축키 alt(option) + command + i 윈도구 개발자 도구 단축키 f12
[js] 자바스크립트로 시간차 지연 출력 (ft. for문, setTimeout, react) 자바스크립트에서 시간차, 지연을 위한 구현 방법입니다. 자바스크립트를 이용하여 시간차를 두고 출력하는 방법은 setTimeout와 async를 이용한 방법이 있습니다. 여기서 데이터의 양이 많을 경우, for문과 map을 이용해 setTimeout 을 사용하는 방법이 좋습니다. for문, setTimeout 예제 1초 마다 0부터 4까지 시간차로 출력됩니다. const data = [1, 2, 3, 4, 5] for (let i = 0; i { console.log(i) }, i * 1000) } //결과 //0 //1 //2 //3 //4 map, for문, setTimeout 예제 데이터의 양이 많을 경우 map과 함께 이용하여 데..
무료 오픈 소스 모음 사이트 추천 (ft. kandi) open source 모음 사이트, kandi를 소개합니다. kandi 오픈 소스 플랫폼, kandi를 이용하여, 우리가 원하는 무료 오픈 소스의 라이브러리를 검색할 수 있습니다. 제약사항이 적어 대부분의 프로젝트에서 자유롭게 사용이 가능한 permissive 라이센스를 검색하여 찾을 수 있습니다. Permissive licenses have the least restrictions, and you can use them in most projects. https://kandi.openweaver.com/ kandi: find software libraries Find reusable libraries, code snippets, cloud APIs from over 430+ million knowled..
[react] redux, thunk 대화형 챗봇 코드 샘플 보호되어 있는 글 입니다. 2021. 10. 6.
[reast] react-toastify 사용법 react, toast 라이브러리, react-toastify 사용법 입니다. 화면 구현 react-toastify https://www.npmjs.com/package/react-toastify react-toastify React notification made easy www.npmjs.com react-toastify 설치 npm i react-toastify react-toastify import import { ToastContainer, toast } from "react-toastify"; import "react-toastify/dist/ReactToastify.css"; 코드 const Info = () => { const onSubmitData = (e) => { e.preventDe..
[css] grid 반응형 layout 적용 grid를 이용한 반응형 레이아웃 입니다. grid를 이용한 style을 적용하면, 미디어쿼리를 사용할 필요 없이 스크린 화면 사이즈에 맞추어 반응형 레이아웃을 구현할 수 있습니다. 구현 화면 css div { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); grid-gap: 15px; } fr fr(fractional unit)은 사용 가능한 공간에 대한 비율을 의미 아래의 경우 100px, 25%를 사용하고 남은 공간을 1fr은 ‘1/3’, 2fr은 ‘2/3’ 만큼 사용 .container { grid-template-columns: 1fr 2fr 100px 25%; } auto-fill 행과 열의 크기게 맞게 ..
[react] Node Sass version 6.0.1 is incompatible with ^4.0.0 || ^5.0.0. 오류 해결 react에서 sass 사용을 위하여 npm node-sass -save를 통하여 설치를 하고, npm start로 로컬 서버를 구동하다가 아래와 같은 오류가 나왔습니다. 오류 메시지 ./src/App.scss (./node_modules/css-loader/dist/cjs.js??ref--5-oneOf-6-1! ./node_modules/postcss-loader/src??postcss!./node_modules/resolve-url-loader?? ref--5-oneOf-6-3!./node_modules/sass-loader/dist/cjs.js??ref--5-oneOf-6-4!./src/App.scss) Node Sass version 6.0.1 is incompatible with ^4.0.0 |..
code . 현재 창에서 열기 입력 코드 (ft. 터미널) 터미널 입력 코드 - 해당 프로젝트 폴더 열기 cd project //해당 프로젝트로 이동 code . //해당 프로젝트 새창으로 열기 해당 프로젝트 현재 창에서 열기 사실 code . 코드를 사용할때 새창에서 열기에 이전 창을 닫아야하는 번거로움으로 실무에서는 아래의 코드를 더 자주 사용하게 됩니다. code . -r //해당 프로젝트 현재창에서 열기
[react] 네비게이션 구현 react, 웹 admin, dashbord에서 필요한 nav 바를 구현합니다. 구현 화면 구현 영상 구현 내용 1. react, hooks를 이용한 Nav 바 구현 2. style은 tailiwind 사용 3. 하위 메뉴 hidden에서 상위 메뉴 클릭 시 하위 메뉴 출현 상위 폴더 const Nav = () => { const menus = [ { id: 1, upperMenu: '상위 메뉴1', lowerMenu1: '하위 메뉴1', lowerMenu2: '하위 메뉴2' }, { id: 2, upperMenu: '상위 메뉴2', lowerMenu1: '하위 메뉴1', lowerMenu2: '하위 메뉴2' }, { id: 3, upperMenu: '상위 메뉴3', lowerMenu1: '하위 메뉴1'..
[react] gauge 차트에 svg, path태그에 text 추가하기 svg, path태그에 텍스트를 추가하는 방법입니다. gauge 차트를 사용하기 위해 react-gauge-chart 라이브러리를 사용하였습니다. react-gauge-chart 라이브러리 https://www.npmjs.com/package/react-gauge-chart react-gauge-chart React component for displaying a gauge chart, using D3.js www.npmjs.com 위의 라이브러리를 이용하여 게이지 차트가 완성되었습니다. 하지만 제가 원하는 것은 아래와 같이 arc 위에 label을 표시하는 것입니다. 자바스크립트를 이용하여 태그를 만들어 innerhtml 속성을 이용하여 텍스트를 추가하려고 하였는데, svg에 text가 삽입이 불가능하..
[react] 챗봇 구현하기 (ft. react-simple-chatbot) react-simple-chatbot 을 이용하여 챗봇을 구현합니다 . react에서 가장 많이 쓰이는 simple 챗봇입니다. documentation 이 잘 되어있고, api를 이용하여 여러가지의 custom이 가능합니다. 구현화면 구현 영상 react 챗봇 https://lucasbassetti.com.br/react-simple-chatbot/ React Simple Chatbot A simple chatbot/conversational-ui react component lucasbassetti.com.br react simple chatbot 설치 npm install react-simple-chatbot --save react simple chatbot import import ChatBot ..
[react] Redux, thunk를 이용한 쇼핑몰 만들기 (ft. redux-thunk) ver.3 보호되어 있는 글 입니다. 2021. 9. 16.
[react] Redux를 이용한 쇼핑몰 만들기 (ft. view) ver.2 보호되어 있는 글 입니다. 2021. 9. 14.
[react] Redux를 이용한 쇼핑몰 만들기 (ft. redux, axios) ver.1 보호되어 있는 글 입니다. 2021. 9. 13.
[ts] Could not find a declaration file for module 'react' react에서 typescript를 설치하고 app.tsx 에서 router를 설치하는데 이런 오류가 나왔습니다. 오류 메시지 Could not find a declaration file for module 'react'. '/Users/inkijo/Documents/react-test/my-books/node_modules/react/index.js' implicitly has an 'any' type. If the 'react' package actually exposes this module, consider sending a pull request to amend 'https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react..
[react] 장바구니 추가, 삭제, 전체 삭제 기능 구현 예제는 패스트캠퍼스의 "이웅재"님의 강의를 들으면서 공부한 내용입니다. 구현 내용 const [orders, setOrder] = useState([{id: ' ', quantity: 0}]) 의 형식으로 state 관리 장바구니에 상품 추가 선택한 상품 삭제, 전체 장바구니 삭제 사용한 web API: find(), map(), filter() 구현 영상 상품 리스트 컴포넌트 {prototypes.map((prototype) => { const { id, thumbnail, title, price, desc, picUrl } = prototype; const onAdd = () => {addToOrder(id)} //** 이 부분에서 클릭이벤트로 해당 id 보내줌 return ( {title} $ {p..
[js] 만 나이 계산하기 자바스크립트로 만나이를 계산합니다. 만 나이 계산하는 함수 (파라미터로 생년월일 넘겨줄때) export const gettingOriginalAge = (birth) => { //birth가 1990-03-05, string 형식 const today = new Date(); //현재 날짜 let age = today.getFullYear() - Number(birth.slice(0, 4)); let mon = (today.getMonth()+1) - Number(birth.slice(5, 7));//getMonth()는 0-11로 출력되므로 +1 if (mon < 0 || (mon === 0 && today.getDate() < Number(birth.slice(8, 10)))) { return age..
[js] day.js 사용법 (ft. 날짜, 시간 라이브러리, moment.js) 자바스크립트를 통해 날짜와 시간을 출력하는 라이브러리, day.js 입니다. 자바스크립트로 날짜와 시간을 출력할 경우, 직접 코드를 작성할 경우도 있지만, 라이브러리를 통해 직접 함수를 만드는 번거로움을 피할 수 있습니다. 과거에는 Moment.js을 많이 사용하였지만, 용량이 너무 많이 차지하여, 최근에는 Moment.js의 경량 버전인 day.js를 많이 사용하고 있습니다. day.js moment.js의 API 형식은 그대로 유지하면서 용량은 33배 가볍습니다. 사용법이 moment.js와 거의 같다고 보면 되기에 편하게 day.js로 갈아탈 수 있습니다. day.js 사이트 https://www.npmjs.com/package/dayjs dayjs 2KB immutable date time lib..
[react] next.js 사이트 만들기 (ft. 동적 라우팅) ver.2 react 라이브러리, next.js로 만튼 사이트 예제입니다. 예제는 유투버, code Scalper님의 강의를 들으면서 공부한 내용입니다. 구현 화면 http:.../photos/1 와 같이 상세 페이지로 접근합니다. 폴더 구조 pages > photos.js import HeadInfo from "../components/HeadInfo" import Image from 'next/image' import styles from "../styles/Photos.module.css" import Link from 'next/link' const photos = ({ photos }) => { return ( Gallery {photos.map(photo => //여기서 id를 path로 보내면서 링크 ..
[react] next.js 사이트 만들기 (ft. getStaticProps, getServerSideProps) ver.1 react의 라이브러리, next.js로 만든 사이트 예제입니다. 예제는 유튜버, code Scalper님의 강의를 들으면서 공부한 내용입니다. 구현 영상 구현 화면 Home 페이지 Photes 페이지 photo 이미지별 세부 페이지 폴더 구조 getServerSideProps, getStaticProps getServerSideProps 페이지에 들어올때마다 즉시 데이터 전송 빌드와 상관없이, 매 요청마다 데이터를 서버로부터 가져옴 export const getServerSideProps = async () => { const res = await fetch('https://jsonplaceholder.typicode.com/posts?_start=0&_end=10') const posts = awai..
[css] 모달창 오픈시 css로 스크롤 방지 모달창(팝업) 오픈시 css를 통한 스크롤 방지입니다. css를 이용한 scroll을 방지 모달창이 오픈되었을때, 감싸고 있는 부모요소에 아래의 스타일을 적용하면 됩니다. 모달창 open이 true시 적용하고, false시 없애주어 scroll 기능을 되살려줍니다. .wrapper = { position: fixed; width :100%; height: 100%; overflow: hidden; }
[react] Object is possibly 'null' (ft. typescript, style) 오류 해결 react hooks에서 자바스크립트를 이용해 html element에 접근하여 Object is possibly 'null' 이라는 타입스크립트 오류가 났습니다. 이유는 객체가 비어 있을 수도 있는데 해당 객체의 내부 프로퍼티나 메소드를 사용할 때 입니다. before const handleClick = () => { let scrollBlock = document.querySelector('.scrollBlock'); scrollBlock.style.backgroundColor = "#F6CB44"; }; 해결 방법 타입 단언 사용 (type assertion) const handleClick = () => { let scrollBlock = document.querySelector('.scrollB..
반응형