일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- python
- 자바스크립트
- Level3
- 파이썬
- 프로그래머스
- 리트코드
- 리액트
- dp
- 웹프로그래밍
- 고득점Kit
- Level1
- CS
- LeetCode
- 프로그래밍
- OS
- Medium
- sql
- Level2
- 배열
- VUE
- react
- 백준
- 동적계획법
- web
- 카카오
- javascript
- typescript
- C++
- Doitvue.js입문
- 코테연습
- Today
- Total
목록Web/React (16)
이전 글에서 만든 WorldClock 컴포넌트는 하나 추가할 때마다 일일히 태그를 작성해야되는 귀찮음이 있었다. 이를 해결하기 위해서 리스트로 간편하게 바꿀 수 있다. function App() { const cityTimeData = [ ['서울',10], ['베이징',9], ['시드니',12], ['LA',17], ['부산',10] ] const WorldClockList = cityTimeData.map((citytime,index)=> ) return ( Hello World {WorldClockList} } ); }결과가 동일하게 나오는 것을 볼 수 있다. 반복성 있는 컴포넌트에서 엘리먼트는 반드시 고유한 key를 가져야한다..
Props? 각 컴포넌트에 데이터를 key와 value 값으로 전달해주는 기능 Read Only 컴포넌트 만들고 props로 값 받아서 출력하기 function WorldClock(props){ return( 🌎도시 : {props.city} ⌚시간 : {props.time} 시 ) } function App() { return ( //이전 글과 내용 같음 )
JSX ? javascript에서 쓰는 HTML 비슷한 것 태그 이름은 기존 HTML과 거의 유사하다 (다른 것도 있음) Attributes나 css는 camel방식이다. (className,textAlign) JS코드를 활용하고 싶다면 {}를 이용한다. JSX로 inline style 넣기 //App.js Hello World 변수로 선언해서 넣는 것도 가능하다 //App.js const myStyle = { color:'red', fontWeight:'bold', //font-weight 가 아니라 fontWeight } function App() { return ( Hello World className 사용하기 기존의 HTML과는 다르게 class 대신 classNam..
리액트의 장점 상호작용이 많은 UI 효율적인 컴포넌트 갱신 및 렌더링 스스로 상태 관리하는 컴포넌트 DOM과 별개로 상태 관리 앱 안 데이터 손쉽게 전달 npm ? node package manager. 자바스크립트의 다양한 라이브러리들을 관리해주는 도구. 파이썬의 pip랑 비슷함 개별 프로젝트 폴더에 따로 설치 가능 전체적으로 사용하도록 설치도 가능 (-g, global) 사용은 주로 npm으로 시작 npx : 따로 모듈 설치 없이 사용할 수 있게 해주는 툴 Node.js 설치하기 운영체제에 맞는 거 설치 터미널에 node--version을 쳤을때 버전이 나오면 정상적으로 설치된 것임 프로젝트 생성하기 npx create-react-app [앱 이름] 위에서 하라는대로 해보면 다음과 같은 화면을 확인할..
Promise 언젠가 해결할 것이라는 약속 /* new Promise ((resolve, reject) => {}) Resolve -> 해결, 성공 - > then Reject - 거절, 실패 -> catch */ function sayHello2(name){ return new Promise((resolve,reject)=>{//이건 안 바꾸는게 좋음 setTimeout(()=>{ console.log(name+"님 안녕하세요") resolve("서울") },3000) }) } sayHello2("Frank") .then((seoul)=>console.log(seoul+" 로 안녕히가세요")) //resolve의 output을 받아서 input으로 쓸 수 있다. /* 실행결과 Frank님 안녕하세요 서..
비동기성 실행 결과를 순서대로 처리하지 않음 setTimeout(()=> {console.log("안녕하세요")},2000); console.log("안녕히 가세요");-> 안녕세요가 먼저 나온다. 2초 기다리지 않음. 리액트가 비동기성이 필요한 이유는 리액트가 다음과 같은 특성을 갖기 때문 인터넷 속도 의존 유저 인터랙션 속도가 느려도 인터랙션은 되어야 한다. 하지만 결과 순서가 뒤죽 박죽임. 이를 해결하기 위한 게 바로 콜백 결과가 끝난 후 호출되는 함수 function sayHello(name,byeCallback){ setTimeout(()=>{ console.log(name+" 안녕하세요.") byeCallback() },2000); } sayHello("Mike",()=>console.log(..
class 구조 class 클래스명 { constructor(arg){//이 안에 초기 클래스 설정 값을 쓸 수 있다. this.prototype = arg; } } class는 부모 class를 상속 받을 수 있다. class 클래스명 extends 부모 클래스 class 클래스명 extends 부모클래스명 { constructor(arg,inp){ super(inp)//부모의 인풋을 꼭 써줘야한다. this.prototype = arg; } } 예시 코드 class Animal{ constructor(leg){ this,leg = leg } printAnimal(){ console.log(this.name+"은 "+String(this.leg)+"개의 다리를 가진다.") } } // Lion - > ..
클래스 라이언 react 강의 들으면서 정리한 것임 arrow function 사용하기 쉽도록 기존 function을 간소화한 arrow function을 사용함 함수명 = 변수 => 리턴값 plusTwo = s => s+2 console.log(plusTwo(10)) arrow function 활용 map : 리스트 각 값을 조작 arr = [1,2,3,4,5,16,354] //기존 방식 //arr = arr.map(function(value){return value*2}) arr = arr.map(v => v*2) filter : 필터링 arr_filter = arr.filter(v=> v> 10)