[React] React 완벽 가이드 섹션 5 : 렌더링 리스트 및 조건부 Content

2022. 3. 29. 03:01·Frontend/Study
728x90

【글로벌 Best】 React 완벽 가이드 with Redux, Next.js, TypeScript | Udemy


1. 배열 동적으로 렌더링

- 상위 컴포넌트에서 동적으로 변화하는 배열을 props로 받았을 때, 하위 컴포넌트에서 동적으로 렌더링 할 수 있다.

- map함수를 이용하여, jsx를 리턴하도록 하면 된다.

- key를 지정하지 않으면, 웹페이지에서 경고가 난다. (오류는 안남)

* 경고가 나오는 이유는 새로운 아이템이 추가될 때, 어느 인덱스에 추가가 될지 리액트가 모름

  그래서 리액트가 추가될 배열의 모든 상태를 확인하는 작업이 생겨서 비효율적임

const Expense = (props) => {
    return(
        {props.items.map((expense) => (   //props.items 에는 배열이 저장돼있다
            <ExpenseItem
                title={expense.title}
         		amount={expense.amount}
         		date={expense.date}
         		key={expense.id}
            />
        ))}
    );
}

 

 

2. filter함수를 이용하여 특정 요소만 렌더링

- props에서 받아온 배열을 filter함수를 이용해 return 문이 참인 요소들의 배열을 출력하게 할수 있다. 

* 원래 배열은 건드리지 않음 새로운 배열이 생성되는거임

function Expenses(props){
    ...
    const filteredExpenses = props.data.filter((expense)=>{  //props.data는 배열
        return expense.date.getFullYear().toString() === filteredYear;
    });

   return (
     <div>
         <ExpensesList items={filteredExpenses} />
     </div>
   );
}

 

 

3. 조건부 랜더링

1) 삼항 연산자를 이용한 컴포넌트 출력

const Expense = (props) => {
    return (
        ...
        {조건식 ? 조건식의 결과가 참일 때 : 거짓일 때 }
    );
}

 

2) 이항 연산자로 이용해 출력

const Expense = (props) => {
    return (
        ...
        {조건식1 && 조건식의 결과가 참일 때}
        {조건식1의 반대 && 조건식의 결과가 참일 때}
    );
}

 

3) return문 밖으로 빼기

- return문안에 넣는 jsx코드는 코드가 안이쁨

- 좀더 깔끔하게 작성하기 위해서 return문 밖으로 뺌

const Expenses = props => {
   if (props.items.length === 0) {
     return <h2>Found no expenses</h2>;
   }
   
   //조건문의 결과가 거짓일 때 아래 리턴문이 출력됨
   return <ul className="expenses-list">
     {
       props.items.map((expense) => (
       <ExpenseItem
         title={expense.title}
         amount={expense.amount}
         date={expense.date}
         key={expense.id}
       />))
     }
   </ul>
};

728x90
저작자표시 비영리 (새창열림)

'Frontend > Study' 카테고리의 다른 글

[React] React 완벽 가이드 섹션 9 : 프레그먼트 작업, Portals & Ref  (0) 2022.05.02
[React] React 완벽 가이드 섹션 6 : 리액트 컴포넌트 스타일링  (0) 2022.04.29
[React] React 완벽 가이드 섹션 4 : 리액트 state 및 이벤트 다루기  (0) 2022.03.27
[React] React 완벽 가이드 섹션 3 : 리액트 기초 및 실습 컴포넌트  (0) 2022.03.24
[React] React 완벽 가이드 섹션 2 : 자바스트립트 새로고침  (0) 2022.03.21
'Frontend/Study' 카테고리의 다른 글
  • [React] React 완벽 가이드 섹션 9 : 프레그먼트 작업, Portals & Ref
  • [React] React 완벽 가이드 섹션 6 : 리액트 컴포넌트 스타일링
  • [React] React 완벽 가이드 섹션 4 : 리액트 state 및 이벤트 다루기
  • [React] React 완벽 가이드 섹션 3 : 리액트 기초 및 실습 컴포넌트
BeNI
BeNI
코딩하는 블로그
  • BeNI
    코딩못하는컴공
    BeNI
  • 전체
    오늘
    어제
    • Menu (253)
      • My profile (1)
      • 회고 | 후기 (8)
      • Frontend (65)
        • Article (11)
        • Study (35)
        • 프로그래머스 FE 데브코스 (19)
      • Backend (0)
      • Algorithm (58)
        • Solution (46)
        • Study (12)
      • Major (111)
        • C&C++ (23)
        • Java (20)
        • Data Structure (14)
        • Computer Network (12)
        • Database (15)
        • Linux (6)
        • Architecture (3)
        • Lisp (15)
        • OS (1)
        • Security (2)
      • etc (2)
  • 링크

    • 깃허브
    • 방명록
  • 인기 글

  • 최근 댓글

  • 최근 글

  • 태그

    프로그래머스
    Algorithm
    자료구조
    lisp
    react
    데브코스
    백준
    C++
    파일처리
    리팩토링
  • hELLO· Designed By정상우.v4.10.2
BeNI
[React] React 완벽 가이드 섹션 5 : 렌더링 리스트 및 조건부 Content
상단으로

티스토리툴바