FRONT END/react

4. components

자코린이 2023. 4. 20. 18:38

요즘 프론트 엔드 개발 프레임워크의 주요 개념은 '컴포넌트(components)'입니다.

이는 레고와 같습니다.

각 필요한 부품을 만든 후, 그 부품을 결합하여 페이지를 생성하는 것입니다.

이는 생산성의 증가로 이어지지만, 많은 수의 컴포넌트를 관리하므로 코드의 가독성의 감소로 이어질 수 있습니다.

때문에 컴포넌트를 생성할 때 조심히 생성하시는 것이 좋습니다.

 

리엑트에서는 컴포넌트를 js의 함수 생성방법으로 생성할 수 있습니다.(class도 있지만 함수가 더 쉽습니다.)

https://ko.reactjs.org/docs/components-and-props.html

 

Components와 Props – React

A JavaScript library for building user interfaces

ko.reactjs.org

이는  jsx의 도움으로 가능한 일입니다.

 

아래 예시 코드를 살펴봅시다.

function Welcome(props) {
  return <h1>Hello, {props.name}</h1>;
}

const root = ReactDOM.createRoot(document.getElementById('root'));
const element = <Welcome name="Sara" />;
root.render(element);

Welcome 컴포넌트를 생성하고 props라는 매개변수를 받았습니다.

여기서 props는 welcome태그 안의 name에서 값을 주고 있습니다.

 

만약 컴포넌트의 리턴값의 크기가 커지면 꼭 <div></div> 태그나 <></>태그로 감싸주세요(<></>는 리엨트에서는 에러가 아닙니다.)

function Comment(props) {
  return (
    <div className="Comment">
      <div className="UserInfo">
        <img className="Avatar"
          src={props.author.avatarUrl}
          alt={props.author.name}
        />
        <div className="UserInfo-name">
          {props.author.name}
        </div>
      </div>
      <div className="Comment-text">
        {props.text}
      </div>
      <div className="Comment-date">
        {formatDate(props.date)}
      </div>
    </div>
  );
}

 

문서의 맨 아래에 나오는 경고문을 잘 읽어보세요

props는 오직 읽기 전용으로 props의 값이 변하게 함수를  작성하면 안 된다는 경고문이 있습니다.

그 아래줄에 이를 해결하기 위해 state를 사용하라고 나와있습니다.

'FRONT END > react' 카테고리의 다른 글

6. useEffect  (0) 2023.05.01
5. state 관리  (0) 2023.04.20
3. jsx 문법 살펴보기  (0) 2023.04.20
2. react.js 설치  (0) 2023.04.19
1. react.js 란 무엇인가?  (0) 2023.04.18