Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

0. props와 state에 대한 조사 #7

Open
123000l opened this issue Sep 1, 2022 · 0 comments
Open

0. props와 state에 대한 조사 #7

123000l opened this issue Sep 1, 2022 · 0 comments
Labels
조사 Improvements or additions to documentation

Comments

@123000l
Copy link
Collaborator

123000l commented Sep 1, 2022

props와 state는 react에서 구성 요소가 데이터를 받거나 처리하고 보내기 위해 사용된다. 렌더링(화면에 보이는) 결과물에 영향을 주는 정보를 갖고 있다.

차이점

  • props : 함수 매개변수처럼 컴포넌트에 전달된다.
  • state: 함수 내 선언된 변수처럼 컴포넌트 안에서 관리된다.

props

  • 객체 내부 속성을 의미하는 properties이다.
  • 상위(부모) 컴포넌트에서 하위(자식) 컴포넌트로 데이터를 넘길 때 사용한다.
  • 한번 설정되면 변경이 불가한 불변의 데이터이다.

state

  • 내부 컴포넌트에서 생성되고 활동하며 변경이 가능한 가변의 데이터이다.
  • 사용과 구현을 철저하게 분리하여 각각의 편의성을 돕고자 한다.
  • 일반 변수와 다른 점 : 함수가 종료될 때 사라지는 일반 변수에 반해, state 변수는 리액트에 의해 보존된다.
  • 일반적으로 변수가 아닌 setState( ) 라는 리액트 함수를 사용하여 State라는 저장 공간에 담아 사용한다.
  • 리액트는 객체의 상태가 바뀔 때마다 컴포넌트를 브라우저에 자동으로 재렌더링한다. 이때, Virtual DOM이 생성되는데, 리액트는 이전의 Virtual DOM과 비교하여 다른 부분을 찾는다. 메모리에서 먼저 구현한 후 실제 DOM 부분만 업데이트 한다.
  • setState( )는 항상 컴포넌트를 즉시 업데이트 하지 않는다. 업데이트 일괄 처리 또는 연기가 가능하다.

Component

  • 앱을 이루는 최소한의 단위로, 리액트로 만든 앱은 컴포넌트의 조합이라 할 수 있다.
  • 컴포넌트 내용은 자바스크립트를 닮은 jsx라는 언어를 사용한다. jsx는 페이스북이 개발했다.
  • 리액트는 jsx를 웹 브라우저에 뿌리며 자체적으로 js로 컨버팅 한다.
  • 컴포넌트 사용 규칙
    • 컴포넌트의 이름은 대문자로 시작해야 한다.
    • render( )은 엄연히 함수지만, 컴포넌트 안에서는 render( ) { } 형태로 함수 명 함에 function 을 생략한다.
@1013115 1013115 changed the title props와 state에 대한 조사 0. props와 state에 대한 조사 Sep 3, 2022
@1013115 1013115 added the 조사 Improvements or additions to documentation label Sep 16, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
조사 Improvements or additions to documentation
Projects
None yet
Development

No branches or pull requests

2 participants