끄적끄적 코딩
article thumbnail
[React] gh-pages
React 2020. 12. 16. 22:59

gh-pages란 github repository를 통해 github pages에 호스팅하게 해주는 라이브러리 npm i gh-pages package.json # ... "homepage": "https://J3SUNG.github.io/movie_app_2020" } package.json에 homepage 추가 https://{username}.github.io/{repository} ex) J3SUNG.github.io/movie_app_2020 gh-pages를 실행하는 스크립트 생성 (depoly) deploy가 실행되기전에 build가 필요하므로 predeploy 스크립트에서 npm run build를 실행 predeploy는 deploy가 실행되기전에 실행됨 npm run deploy

[React] axios
React 2020. 12. 16. 22:15

axios는 비동기 방식으로 HTTP 데이터 요청을 실행하는 HTTP 클라이언트 라이브러리 npm i axios # ... import axios from "axios"; # ... getMovies = async () => { const movies = await axios.get("https://yts-proxy.now.sh/list_movies.json"); console.log(movies); }; componentDidMount() { this.getMovies(); } #... componentDidMount가 되면 getMovies()가 실행됩니다. getMovies는 axios를 통해 해당 URL에 데이터를 요청합니다. 받은 데이터는 movies에 저장이되고 console.log()를 통해..

article thumbnail
[React] create-react-app
React 2020. 12. 16. 09:24

create-react-app은 리액트 기반의 프로젝트 개발 환경을 구성해주는 모듈 create-react-app에서 다음과 같은 환경을 구성 - 기본적으로 리액트는 자바스크립트 외부모듈인 react, react-dom, react-script들이 필요 - 상위 버전의 코드를 하위버전의 브라우저에서 작동 가능하도록 변경해주는 babel - 여러 자바스크립트 파일을 하나로 모아주는 모듈인 webpack - ... npx create-react-app hello_react npx create-react-app "경로/폴더명"을 입력합니다. 해당 폴더에 들어가면 다음과 같이 폴더와 파일이 생성된 것을 확인할 수 있습니다 리액트를 실행해 봅니다. 해당 폴더에서 터미널에 다음을 입력합니다. react start ..

article thumbnail
[React] React Router
React 2020. 11. 17. 17:14

react-router 설치 npm i react-router react-router-dom 설치 (웹에서 쓰는 라이브러리) npm i react-router-dom import React from "react"; import { BrowserRouter, HashRouter, Link, Route, Switch } from "react-router-dom"; import NumberBaseball from "../3. 숫자야구/NumberBaseball"; import RSP from "../5. 가위바위보/RSP"; import Lotto from "../6. 로또추첨기/Lotto"; import GameMatcher from "./GameMatcher"; const Games = () => { re..

[React] Context API
React 2020. 11. 17. 11:30

Context API => 부모에서 자식에게 props를 넘겨줄 때 한 단계씩 넘겨줘야하는데 context를 이용하면 컴포넌트 트리 전체에 데이터를 제공 가능 import React, { useEffect, useReducer, createContext, useMemo } from "react"; export const TableContext = createContext({ tableData: [], halted: true, dispatch: () => [], }); const value = useMemo( () => ({ tableData: tableData, halted: halted, dispatch }), [tableData, halted] ); return ( {timer} {result} );..

[React] useReducer
React 2020. 11. 11. 00:10

useReducer를 사용하면 여러개의 state를 하나의 state와 하나의 setState로 통일 가능 import React, { useReducer } from 'react'; const initalState = { aState: '', bState: 0, cState: [1, 2, 3], }; const SET_ASTATE = 'SET_ASTATE'; const SET_BSTATE = 'SET_BSTATE'; const SET_CSTATE = 'SET_CSTATE'; const reducer = (state, action) => { switch (action.type) { case SET_ASTATE: { return { ...state, aState: action.aState, }; }, ca..

[React] useMemo, useCallback
React 2020. 11. 10. 16:35

useMemo => 함수의 결과 값을 저장, 2번째 인자의 값이 바뀌면 다시 실행 (동일한 실행이 일어나는 함수에 사용) import React, { useMemo } from 'react'; const a = useMemo(() => b(), [xState, yState]); a가 b()함수의 return 값을 가짐 xState 또는 yState의 값이 바뀌면 useMemo()가 다시 실행되어 b()함수의 return값을 a에 저장 useCallback => 함수를 자체를 저장, 함수 컴포넌트가 재실행되도 해당 함수가 재생성되지 않음 (함수 생성 비용이 클 때 사용) import react, { useCallback } from 'react'; const aFunc = useCallback(() => ..

[React] useEffect
React 2020. 11. 9. 22:14

useEffect란 리액트 컴포넌트가 렌더링 될 때마다 특정 작업을 수행하도록 설정 할 수 있는 Hook useEffect(() => { // 두번째 파라미터인 []이 수정될 때 마다 실행되는 코드 // []안에 값이 없을 경우 컴포넌트가 마운트될 때 최초 한번 실행 // 두번째 파라미터가 비어있을 경우 렌더링 될때마다 실행 return () => { // 컴포넌트가 제거되기 전에 실행되는 코드 } }, [input]) 컴포넌트가 마운트 될 때 최초 한번만 실행 클래스 컴포넌트 - componentDidMount() 함수형 컴포넌트 useEffect(() => { // code }, []) 컴포넌트가 업데이트 되는 경우 실행 클래스 컴포넌트 - componentDidUpdate() 함수형 컴포넌트 use..

검색 태그