목표 서버로부터 전송받은 데이터를 React에서 사용할 수 있는 방법을 익힌다. export, import 1) data.js let a = 10; let b = 100; let c = ['kim',20] let d = {name : 'kim', age : 20 } export {a,b,c,d} a, b 변수를 다른 스크립트문에서 사용할 수 있도록 export 해준다. 2) App.js import {a,b,c,d} from './data.js'; data.js에서 a,b,c,d 변수를 가져온다. 이후로 App.js 에서는 data.js에서 받아온 a,b,c,d 데이터를 사용할 수 있게 된다. JSON 형식의 데이터 읽기 1) 서버가 전송한 JSON let data=[ { id : 0, title : "..
React/코딩애플 강의
목표 이미지 태그 사용법을 익힌다. URL 지정하는 법 1. CSS에서 url을 지정한다. 1) CSS .main-bg{ height: 400px; background-image: url('./img/apple.PNG'); background-size: cover; background-position: center; } 2) App.js 2. htm 태그 내에서 src 속성을 사용 import appleImagePath from './img/apple.PNG'; url 괄호 내부에 들어가는 경로를 입력해주기 위해 양단에 작음 따옴표와 덧셈 부호가 들어간다. 3. img 태그내 src 속성에 이미지 저장소 url 입력 이미지 경로 설정법 1. public 폴더에 이미지가 있는 경우 process.env.P..
목표 Bootstrap을 사용하여 기존에 만들어진 UI들을 사용해본다. Bootstrap 설정 과정 1. React Bootstrap 설치 npm install react-bootstrap bootstrap 프로젝트 폴더 터미널에 위 명령어를 입력해주면 설치가 가능하다. 단, 명령어 변경이 발생할 수 있으므로 아래 사이트에서 확인해 보는 것이 바람직하다. https://react-bootstrap.netlify.app/ React Bootstrap | React Bootstrap The most popular front-end framework, rebuilt for React react-bootstrap.netlify.app 2. CSS 관련 Stylesheets import 1) App.js 에 im..
목표 Array 형식의 state의 원소를 추가 및 삭제해본다. Array state 추가 삭제 문법 let [글제목,글제목변경] = useState(['나_Hi','다_안녕하세요','가_채로입니다']); let [따봉, 따봉변경] = useState([0,0,0]); let [inputVal,setInputVal] =useState(''); 위와 같이 정의된 state들을 함수들을 통해 변형해보자 1. Array state 추가 - unshift {setInputVal(e.target.value);}}/> { let copy=[...글제목]; copy.unshift(inputVal) 글제목변경(copy); let addLike = [...따봉]; addLike.unshift(0) 따봉변경(addLike..
목표 input 태그에서 이벤트 리스너를 사용하는 방법과 이벤트 버블링을 방지 방법에 대해 공부해본다. input 태그 사용하기 1. 이벤트 리스너 {실행할코드}}/> {실행할코드}}/> onChange는 값이 변화할 때마다, onClick은 클릭되었을 경우 이벤트가 발생한다. 2. input에 입력한 값 가져오기 1) state 설정 let [inputVal,setInputVal] =useState(''); 2) 텍스트로 입력한 값 state에 저장 {setInputVal(e.target.value)}}/> 이벤트 버블링 방지하기 이벤트 버블링이란? 한 요소에 이벤트가 발생하면 해당 요소에 할당된 핸들러가 동작하고, 이어서 부모 요소의 핸들러가 동작하고 최상단의 부모 요소를 만날 때까지 반복되면서 핸들..
목표 위 사진에서 보이는 목록에서 제목을 클릭하면, 그와 관련된 정보를 띄우는 모달이 하단에 출력되도록 하겠다. 현재는 목록의 어떤 제목을 클릭해도 아래와 같이 첫번째 제목인 '나_Hi'만 출력되는상태이다. 코드 작성 순서 1. state 생성 let [indexNum,setIndexNum] =useState(0); 동적 UI 변동을 줘야하므로 state를 사용한다. 2. state 상태 함수를 이용하여 indexNum state 값 변경 { //a는 하나씩, i는 0부터 반복될때마다 1씩 증가하는 수 글제목.map(function(a,i){ return( {setModal(!modal); setIndexNum(i)}}>{a} { let copy=[...따봉] copy[i]=따봉[i]+1 따봉변경(cop..
목표 부모 컴포넌트가 자식 컴포넌트를 호출할 때, 자식 컴포넌트는 부모 컴포넌트에서 정의된 state 사용이 필요할 수 있다. 이 때 props 파라미터를 이용하여 부모 state를 가져와 보자. 부모->자식 state 전송 1. 자식 컴포넌트 호출 시, 호출 태그 내부에 전송할 state 작성 let [글제목,글제목변경] = useState(['나_Hi','다_안녕하세요','가_채로입니다']); { modal==true?:null } 위 코드는 부모 컴포넌트가 Modal이라는 컴포넌트를 호출하고 있는 것이다. 글제목이라는 state를 글제목이라는 이름으로 자식 컴포넌트에 전송하고 있다. 또한 color와 같이 state는 아니지만, 이와 같은 방식으로 자식 컴포넌트에 문자열이나 함수, 수등을 전송할 수..
동일하게 여러번 쓰이는 Modal들을 내가 원하는 횟수만큼 반복시키고 싶다. 특히 배열로 받은 데이터들에 대응하는 수만큼 모달을 만들어 출력하고 싶다. 이를 해결해주는 map 함수의 사용법을 알아보자 map 함수 사용법 let [글제목,글제목변경] = useState(['나_Hi','다_안녕하세요','가_채로입니다']); [0,1,2].map(function(a){ return( {글제목[a]} ) }) function 파라미터인 a는 앞의 배열에 속하는 원소 하나 하나를 차례대로 받아온다. 따라서 글제목[0], 글제목[1], 글제목[2]가 차례로 출력된다. 다음은 [0,1,2]라는 직접 입력한 배열 대신, 배열 형식의 state를 map 앞에 쓸 때의 예시이다. 글제목.map(function(a,i){..
기존 자바스크립트 방식과 달리 리액트에서는 데이터의 변동이 프론트 단에서 서버와의 통신 없이도 즉각적인 리빌딩 가능하다. 리액트에서 UI 만드는 단계 1. html css로 미리 디자인 완성 1) html function Modal(){ return ( 제목 날짜 상세내용 ) } 2) css .modal{ margin-top:20px; padding:20px; background:#eee; text-align:left; } 2. UI의 현재 상태를 state로 저장 let [modal,setModal] =useState(false); 3. state에 따라 UI 조작 {setModal(!modal)}}>{글제목[2]} 2월 17일 발행 { modal==true?:null } onClick 속성이 작성된 ..
위와 같은 모달을 페이지에 작성하고 싶다. 그런데 해당 모달은 한 페이지에서 많게는 수십개가 쓰일 수도 있다. 이런 경우 하나 하나 모두 코드로 작성하기에는 부담되기도 하고, 양이 많아질 수록 어떤 코드가 어떤 모달을 가리키는지 판단하기가 어려워진다. 이런 문제를 좀 더 간편히 하기위해 나온 것이 Component다. Component 선언 function Modal(){ return ( 제목 날짜 상세내용 ) } export default Modal; let Modal = () => { return( 제목 날짜 상세내용 ) } export default Modal; 둘 중 어떤 것을 작성해도 똑같이 작동한다. 단, return 안의 문장은 하나의 로 묶여있어야 한다. 최외곽의 안에 다른 나 태그들이 병..