반응 목록


React에서는 일종의 루프를 사용하여 목록을 렌더링합니다.

JavaScript map()배열 방법이 일반적으로 선호되는 방법입니다.

방법 에 대한 복습이 필요하면 ES6 섹션map() 을 확인하세요 .


예시:

차고에 있는 모든 자동차를 렌더링해 보겠습니다.

function Car(props) {
  return <li>I am a { props.brand }</li>;
}

function Garage() {
  const cars = ['Ford', 'BMW', 'Audi'];
  return (
    <>
      <h1>Who lives in my garage?</h1>
      <ul>
        {cars.map((car) => <Car brand={car} />)}
      </ul>
    </>
  );
}

ReactDOM.render(<Garage />, document.getElementById('root'));

에서 이 코드를 실행하면 create-react-app작동하지만 목록 항목에 대해 제공된 "키"가 없다는 경고를 받게 됩니다.


w3schools CERTIFIED . 2022

인증을 받으세요!

React 모듈을 완료하고, 연습을 하고, 시험을 보고, w3schools 인증을 받으세요!!

$95 등록

열쇠

키를 사용하면 React가 요소를 추적할 수 있습니다. 이렇게 하면 항목이 업데이트되거나 제거되는 경우 전체 목록 대신 해당 항목만 다시 렌더링됩니다.

키는 각 형제에 고유해야 합니다. 그러나 전역적으로 복제할 수 있습니다.

일반적으로 키는 각 항목에 할당된 고유 ID여야 합니다. 최후의 수단으로 배열 인덱스를 키로 사용할 수 있습니다.

예시:

키를 포함하도록 이전 예제를 리팩토링해 보겠습니다.

function Car(props) {
  return <li>I am a { props.brand }</li>;
}

function Garage() {
  const cars = [
    {id: 1, brand: 'Ford'},
    {id: 2, brand: 'BMW'},
    {id: 3, brand: 'Audi'}
  ];
  return (
    <>
      <h1>Who lives in my garage?</h1>
      <ul>
        {cars.map((car) => <Car key={car.id} brand={car.brand} />)}
      </ul>
    </>
  );
}

ReactDOM.render(<Garage />, document.getElementById('root'));


연습으로 자신을 테스트하십시오

연습:

React가 목록의 요소를 추적할 수 있도록 하는 속성을 추가합니다.

function GroceryList() {
  const items = [
    {id: 1, name: 'bread'},
    {id: 2, name: 'milk'},
    {id: 3, name: 'eggs'}
  ];

  return (
    <>
      <h1>Grocery List</h1>
      <ul>
        {items.map((item) => <li ={item.id}>{item.name}</li>)}
      </ul>
    </>
  );
}

ReactDOM.render(<GroceryList />, document.getElementById('root'));