리액트에서 컴포넌트는 JSX를 리턴하는 함수이다. function Component(props) { // jsx를 계산하는 과정 return JSX; } render 란 간단히 말해서 `브라우저에 UI를 페인트하는 것`이다. Q. 그렇다면 리액트에서 render는 무엇일까? 컴포넌트를 호출하는 것 JSX를 리턴하는 것 JSX를 브라우저에 페인트하는 것이다. Q. 리액트에서 re-render는 무엇일까? 컴포넌트 렌더링처럼 컴포넌트를 호출(call)하는 것 => 다시 함수 호출 JSX를 리턴하는 것 이전 JSX와 현재 JSX를 비교해서 다른 점(difference)을 페인트하는 것 Q. re-render 발생 시점 state가 변했을 때 => state가 setState()로 값이 변경되면 이후에 컴포넌트..
[ 클로저란(Closure)? ] 클로저는 JS라는 언어에 제약된 개념이 아니라 `함수를 일급객체로 사용하는 모든 언어`에서 사용하는 특성이다. 클로저는 언어 자체만 보면 "폐쇄"의 의미를 가지고 있으며 접근할 수 있는 변수의 범위와 대상을 제한하는 느낌에서 closure이라고 하는 것이 아닌가 싶다. A closure is the combination of a function and environment within which that function was declared. -MDN 클로저- 쉽게 표현하자면, 클로저는 `자신이 생성될 때의 환경(lexical environment)을 기억하고, 그를 사용하는 함수` 이다. // 클로저 예시 function makeAddNumFunc(num) { con..
[ Class 사용 시, extends를 남발하지 말자 ] 상속(extends 키워드)를 사용하면 코드의 중복을 줄일 수 있다는 장점이 있다. 하지만 장점만 존재하는 것이 아니다. 상속을 사용하면 코드가 "강 결합" 형태가 된다. 이렇게 되면 부모 클래스가 변경됐을 때, 다른 코드들에 모든 영향이 가게 된다. => 유지보수가 힘들어진다! 그렇기 때문에 코드의 결합은 신중하고 최대한 느슨하게 하는 것이 좋다. (꼭 상속을 한다면 1단계, 2단계 정도만) 그렇다면 대안은? 상속 대신, 의존성을 주입해주는 형태로 쓰면 된다. => 인자로 받는다는 소리 [ Class 내부에서만 사용하는 상수는 Class 안으로 넣어주기 ] 좋은 코드의 큰 기준점 2가지: 결합도와 응집도 (낮은 결합도와 높은 응집도) 함수(fu..
1. set ( functions Setter, 설정자 ) set 구문은 객체의 속성에 할당을 시도할 때 호출할 함수를 바인딩한다. const language = { set current(name) { this.log.push(name); }, log: [] }; language.current = 'EN'; language.current = 'FA'; console.log(language.log); // Expected output: Array ["EN", "FA"] 1-1. 문법 (syntax) {set prop(val) { . . . }} {set [expression](val) { . . . }} `props` : 주어진 함수를 바인딩할 속성 이름 `val` : props에 할당을 시도한 값 `ex..
Class란? class는 객체를 생성하기 위한 템플릿 클래스는 데이터와 이를 조작하는 코드를 하나로 추상화한다. 자바스크립트에서 클래스는 프로토타입을 이용해서 만들어졌지만 ES5의 클래스 의미와는 다른문법과 의미를 가진다. 1. Class 정의 Class는 "특별한 함수"이다. 함수를 표현식과 선언문으로 정의할 수 있듯 클래스 문법도 class 표현식과 class 선언 두 가지 방법을 제공한다. 클래스는 재정의될 수 없다. 재정의를 시도하면 SyntaxError가 발생한다. 1-1. Class 선언 Class 를 정의하는 한 가지 방법은 class 선언을 이용하는 것 class를 선언하기 위해서는 클리스의 이름과 함께 class 키워드를 사용한다. class Rectangle { constructor(..
- Total
- Today
- Yesterday
- 원티드 프리온보딩 FE 챌린지
- text input pattern
- aspect-ratio
- 프리렌더링확인법
- D 플래그
- is()
- 항해99프론트후기
- Prittier
- getStaticPaths
- ~ ^
- grid flex
- 항해99프론트
- 원티드 FE 프리온보딩 챌린지
- 틸드와 캐럿
- 원티드 프리온보딩 프론트엔드 챌린지 3일차
- getServerSideProps
- && 셸 명령어
- nvm경로 오류
- tilde caret
- 부트캠프항해
- 타입스크립트 DT
- nvm 설치순서
- 형제 요소 선택자
- reactAPI
- 프리온보딩 프론트엔드 챌린지 3월
- float 레이아웃
- 원티드 3월 프론트엔드 챌린지
- 타입스크립트 장점
- fs모듈 넥스트
- 항해99추천비추천
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |