[React 톺아보기] 4. 컴포넌트(3) 컴포넌트 순수성

2024. 3. 3. 22:14·React
728x90

이번 포스팅에서는 목록 렌더링과 컴포넌트의 순수성에 대해 다루어 보겠습니다. 이번 포스팅도 단순히 컴포넌트의 순수성에 대한 내용을 다루지는 않습니다. 컴포넌트 포스팅에서 다루었던 내용을 바탕으로 컴포넌트 순수성에 대해서 다루어 보겠습니다.

컴포넌트의 단일 책임!

컴포넌트 안에서 변수, 배열들의 변화 x

불변성 유지!

이후에 배울 이벤트 핸들러, 상태 관리에 대한 개념 언급!

 

 

  let todolists = [{
    id: 1, //JSX에서 key로 사용됨.
    name: "예외 처리하기",
    done: true
    }, {
    id: 2,
    name: "계층 구조 설계하기",
    done: true
    }, {
    id: 3,
    name: "UI 구현하기",
    done: true
    }, {
    id:4,
    name: "사용자와 상호 작용을 변수 설정",
    done: false
    }
  ]

 

function TodoListBox() {
    return (
      <div className='todoListBox'>
      {todolists.map(todo => (
        <Task key={todo.id}
        id={todo.id}
        name={todo.name}
        done={todo.done}
        color="green"
        ></Task>
        ))}
    </div>
)}

전체 코드

더보기
import React from 'react';
import './todoMain.css'

function Task({ id, name, done = true, color }) {
  return (
    done ? <div><del style={{ color: color }}>{id}. {name}</del></div> :
    <div style={{ color: color }}>{id}. {name}</div>
    );
  }
  
  let todolists = [{
    id: 1, //JSX에서 key로 사용됨.
    name: "예외 처리하기",
    done: true
    }, {
    id: 2,
    name: "계층 구조 설계하기",
    done: true
    }, {
    id: 3,
    name: "UI 구현하기",
    done: true
    }, {
    id:4,
    name: "사용자와 상호 작용을 변수 설정",
    done: false
    }
  ]
  
  function TodoListBox() {
    return (
      <div className='todoListBox'>
      {todolists.map(todo => (
        <Task key={todo.id}
        id={todo.id}
        name={todo.name}
        done={todo.done}
        color="green"
        ></Task>
        ))}
    </div>
)}


function TodoMain() {
    return (
      <div className='todoMainBox'>
        <TodoListBox />
      </div>
    )
  }

  export default TodoMain;

 

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

'React' 카테고리의 다른 글

[React 톺아보기] 6. 상태 관리(1) - useState  (0) 2024.03.07
[React 톺아보기] 5. 이벤트 핸들러  (0) 2024.03.03
[React 톺아보기] 4. 컴포넌트(2) 컴포넌트에 props 전달하기  (0) 2024.02.28
[React 톺아보기] 4. 컴포넌트(1) 컴포넌트 렌더링  (0) 2024.02.27
[React 톺아보기] 3. JSX란?  (0) 2024.02.27
'React' 카테고리의 다른 글
  • [React 톺아보기] 6. 상태 관리(1) - useState
  • [React 톺아보기] 5. 이벤트 핸들러
  • [React 톺아보기] 4. 컴포넌트(2) 컴포넌트에 props 전달하기
  • [React 톺아보기] 4. 컴포넌트(1) 컴포넌트 렌더링
BE_개발자
BE_개발자
경이로운 BE 개발자가 되기 위한 프로그래밍 공부 기록장
    250x250
  • BE_개발자
    경이로운 개발일기
    BE_개발자
  • 전체
    오늘
    어제
    • 전체 보기 (213)
      • AI (1)
        • AI native (0)
        • Skill (0)
      • SpringBoot (4)
        • JPA (3)
        • Security (0)
        • 튜토리얼 (1)
        • 기타 (0)
      • Infra (0)
        • Docker (0)
        • AWS (0)
        • NCP (0)
        • GCP (0)
      • React (19)
      • 서버 (0)
      • Computer Science (16)
        • SW Engineering (10)
        • Data Base (2)
        • OS(운영 체제) (4)
      • Data science (0)
        • Probability & Random Variab.. (0)
        • Data Analysis(데이터 분석) (0)
      • 자료구조 | 알고리즘 (57)
        • 선형 자료구죠 (6)
        • 비선형 자료구조 (9)
        • 정렬(Sort) (3)
        • 탐색(Brute Force) (7)
        • 분할 정복(Devide Conquer) (3)
        • 동적 계획법 (6)
        • 탐욕(Greedy) (2)
        • 수학 (7)
        • 심화 알고리즘 (10)
      • PS (44)
        • 백준 알고리즘[BOJ] (38)
        • 프로그래머스[programmers] (3)
      • Dev tool (15)
        • 개발 도구 및 환경 (0)
        • vscode (3)
        • Git Hub (4)
        • Chrome 웹스토어 (5)
        • Python 전용 개발환경 (0)
      • 성장기록 (1)
      • 개인 project (14)
        • 홈페이지 만들기 (11)
        • 냉보미 (1)
      • STL(Standard Library) (9)
      • programming Language (1)
        • javascript (1)
      • 기타 (13)
        • html css (11)
      • (책, 글, 블로그)리뷰 (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 백준
    • Github
    • Notion
    • 서울과학기술대학교 학술동아리 EC
  • 공지사항

  • 인기 글

  • 태그

    백준
    운영체제
    비트마스킹
    react
    stl
    재귀함수
    PS
    완전 탐색
    C++
    그리디
    이분 탐색
    DP
    CS
    분할정복
    알고리즘
    탐색
    괄호쌍
    OS
    백트래킹
    순열
    프론트엔드
    BFS
    SW Engineering
    SW 공학
    브루트포스
    수학
    스택
    stack
    자료구조
    스프링부트
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
BE_개발자
[React 톺아보기] 4. 컴포넌트(3) 컴포넌트 순수성
상단으로

티스토리툴바