2022_01_17
-
GlobalState - 하나의 State를 모든 페이지에서 접근하고 사용할 수 있다. (작동원리는 state와 같다.)
-
Nullish coalescing - data ?? data.fetchProfile - 앞의 조건이 거짓일때 뒤의 문장을 렌더링
즉, Nullish 는 null 이거나 그와같은 undefined 일때만 렌더링을 해주는 것이다. * false는 null, undefined와 다르기에 착각하면 안된다.
⚙︎ Container / Presenter 패턴
프로젝트를 만들때 폴더를 구조화하는 하는 방법으로 '패턴' 이라 한다.
React에서 주로 사용하는 패턴으로는 container / presenter 패턴과 atomic 패턴이 있다.
Container: JavaScript 부분과 Presenter: JSX(html) 부분으로 나뉜다.
편의를 위해 나눈것뿐 실행은 같이해야하기에 Contaienr(부모컴포넌트)에 Presenter(자식컴포넌트) 를 import하여 사용한다.
위의 이미지의 경우 변수와 함수가 아직 연결되지 않은상태이다.
⚙︎ Props
부모 컴포넌트의 변수/함수를 자식 컴포넌트에게 보내는 방법으로 porps 라는 이름의 ‘객체’로 보내어지게 된다. (객체 안에 함수가 있을 뿐 접근법은 같다.)
- React: 데이터의 흐름이 단방향 구조로 자식이 부모에게 줄 수는 없다.(우회방법이 있기는 하다.)
자식 컴포넌트 함수 실행문에 부모에게 전달받은 함수를 넣고 그 인자로 전달하고자 하는 자식의 데이터를 넣어주면 된다.
- Angular: 데이터의 흐름이 양방향 구조로 양날의 검이다.
* 부모 자식 관계를 잘 파악해야 한다.
⚙︎ import / export 규칙
-
낱개로 한 export는 import { } 로 받는다 . (개별로)
-
모든 export를 받고싶다면 * 을 사용한다. 단, 이름을 지정해 주어야 한다.
ex) import * as AAA from ‘...’
객체이기 때문에 AAA.(customName) 으로 접근할 수 있다. -
default 로 선언한 export는 { } 없이 불러올 수 있다. default를 불러오기때문에 이름이 달라도 import된다. (가독성을 위해 같은 이름을 쓰도록 하자)
ex) import dalaran, {a,b,c} from ‘...’
⚙︎ State
state를 바꾸면 그 state를 이용하여 컴포넌트가 리렌더링(Rerendering)된다.
이때 setState값이 변경될 때마다 리렌더링을 하면 비효율적이기에 setState를 하면 일단 임시저장소에 값을 저장하게 된다. 그 후 모든 작업이 끝나면 그 값을 가져와 한번만 리렌더링을 하게된다.
이러한 이유때문에 input 값을 state 로 받고 그 값을 호출하게 되면 한칸씩 밀리는 현상이 발생하게 된다.
즉, 이벤트 헨들러에서의 setState는 비동기로 작동한다.
—> 한칸씩 밀림
Author And Source
이 문제에 관하여(2022_01_17), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@binheart/20220117저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)