분류 전체보기 111

TIL 68일차_React : basic

state를 직접 수정하면 안되는 이유. 클래스 컴포넌트에서 state는 setState()를 사용한다. 직접 state를 수정하는 것 즉, this.state.comment = 'Hello' 위 처럼 직접 변경하면 안된다. this.state를 지정할 수 있는 유일한 공간은 constructor이다. 그 이유는 React의 life cycle 때문이다. setState가 호출되면 리액트에서는 "어? 상태가 변했네?" 라고 인식하고 렌더링을 실행한다. (위 그림에서의 업데이트할 때 setState()) 그런데 this.state로 직접 변경하게되면 리액트가 state가 변했다는걸 인지하지 못하고, 렌더링하지 않는다. setState를 사용하는 두가지 방법 setState()는 객체, 함수 ..

TIL 67일차_default export와 named export 차이점

default export와 named export 차이점 Default Export default 로 선언된 모듈은 하나의 파일에서 단 하나의 변수 또는 클래스 등등만 export 할 수 있다. const foo = () => { ... } export default foo import 할 때는 아무 이름으로나 import 가능하다. import 아무이름 from './foo.js' 선언과 동시에 default export 는 불가능하다. (named export만 가능) //named Export export const test = ... named Export 한 파일 내에서 여러 변수/클래스 등등을 export 하는 것이 가능하다. export class test {...} expo..

TIL 66일차_React : JSX

JSX는 html처럼 보이지만, 자바스크립트의 확장문법이다. JSX 규칙 반드시 하나의 엘리먼트로 감싸야 한다. 자바스크립트 코드를 적용할 땐 {}안에 작성한다. JSX 내부에서는 if문을 사용할 수 없다. 따라서 IIFE 또는 삼항연산자를 사용한다. (JSX가 if문, for문 안으로 들어가는건 상관없다.) 엘리먼트의 클래스 이름을 적용할 땐, class=가 아닌 className= 을 사용한다. JSX 작성시 필수는 아니지만, 이 작업을 수행할 때 자동 세미콜론 삽입을 피하고자 괄호로 묶는 것을 권장한다. JSX ? 기본적으로 React DOM은 JSX에 삽입된 모든 값을 렌더링하기 전에 이스케이프 하므로, 애플리케이션에서 명시적으로 작성되지 않은 내용은 주입되지 않는다. 모든 항목은 렌더링 되기 전..

TIL 65일차_npm vs npx

모듈을 설치하고 실행하다 보면 어쩔때는 npm명령어를, 어쩔때는 npx 명령어를 쓰곤한다. 쉬운 예로, package.json의 모듈들을 설치할 때는 npm install 을 사용하고, 리액트 CRA를 설치할 때는 npx create-react-app을 사용한다. npx npx는 새로운 패키지 관리 모듈이 아니다. 자바스크립트 패키지 관리 모듈인 npm의 5.2.0버전부터 추가된 도구일뿐이다! npx는 npm을 통해 설치하는 모든 종류의 Node.js 기반의 파일들을 굉장히 간단하게 설치하고 실행할 수 있게 도와준다. npx가 등장한 이유 npm으로 모듈을 전역에 설치하거나, 혹은 프로젝트별로 설치할 때, 패키지가 업데이트 되면 전역과 로컬에 있는 모듈들을 각각 업데이트하며 관리해야하는 번거로움이 있다...

TIL 64일차_Express.js : 라우팅

Express.js는 Node.js를 위한 웹 프레임워크 중 하나이다. express가 기존 http 모듈로 작성하는 서버와 갖는 큰 차이점은 다음과 같다. 미들웨어를 붙이기 쉽다. 자체 라우터를 제공한다. express 설치하기 Express.js는 npm으로 설치한다. npm init npm install express --save 순서로 쉽게 설치할 수 있다. express : Hello world const express = require('express'); const app = express(); const port = 3000; app.get('/', (req, res) => { res.send('Hello world!'); }); app.listen(port, () => { //node a..

TIL 63일차_git: local - remote 연결

local repository와 이미 있는 remote repository 연결하기 로컬에 이미 파일을 만들었고, remote repository도 따로 만들었을 때 이둘을 연결하는 법! 일단 먼저 remote add해준다. git remote add origin 레포링크 pull 해주기 remote 연결했으니 이제 push를 하기전에 pull로 merge해줘야겠지?? 그러나 오류가발생한다. fatal: refusing to merge unrelated histories이건 해당 remote repo와 local repo가 아무런 관련이 없기때문에 생기는 에러이다. 따라서 이를 억지로 pull해줘야하며, 명령어는 다음과 같다. git pull origin main --allow-unrelated-hist..