LeeWang_31
이왕31
LeeWang_31
전체 방문자
오늘
어제
  • 분류 전체보기 (234)
    • 프로젝트 (2)
      • 사이드 프로젝트 (2)
      • Codestates_pre_project (0)
    • 프론트엔드 (169)
      • Html (19)
      • CSS (18)
      • JavaScript (29)
      • Codestates (76)
      • 코딩노트 (27)
    • 백엔드 (10)
      • node (10)
    • 구르는 돌 🌑 (16)
      • Codestates (11)
      • 생각 (4)
      • 공부 흔적 (1)
    • 정보 (18)
      • 오류노트 (2)
      • 인텔리제이 정보 (9)
      • 깃 정보 (3)
      • 기타 정보 (4)
      • 안드로이드스튜디오 정보 (0)
    • CS (7)
      • 이론공부 (7)
    • App (6)
      • Android (3)
      • Kotlin (3)
    • 컴퓨터 수학 (5)
      • 암호론 (5)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 안드로이드스튜디오범블비
  • 번들링
  • css
  • codestate
  • 1292
  • 코플릿
  • DP
  • 사용자친화웹
  • JavaScript
  • linuix 코드스테이츠
  • 웹팩
  • 코드스테이츠
  • 알고리즘
  • React
  • 생활코딩
  • UI/UX
  • 2609
  • figjam
  • html
  • 코딩애플
  • linux
  • 안드로이드스튜디오파이어베이스
  • 사이드프로젝트
  • 2693
  • 사용자 친화 웹
  • 자바스크립트
  • ubuntu
  • 백준
  • 파이어베이스연동
  • TODOlist

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
LeeWang_31

이왕31

[React] React데이터 흐름
프론트엔드/Codestates

[React] React데이터 흐름

2022. 10. 11. 10:39

코드스테이즈 41기 교육 내용을 정리하고 있습니다.
틀린 부분이 있으면 댓글로 알려주시면 감사하겠습니다.

 

🐉React 데이터 흐름


react의 개발 방식의 가장 큰 특징은 페이지 단위가 아닌, 컴포넌트 단위로 시작한다는 점이다.

 

컴포넌트는 컴포넌트 바깥에서 props를 이요해 데이터를 전달인자처럼 전달 받을수 있다

데이터를 전달하는 주체는 부모컴포넌트, 데이터를 받는 쪽은 자식 컴포넌트가 된다.

 

이러한 관계가 계속되면 컴포넌트는 트리구조를 이루고, 이런 구조의 데이터흐름은 하향식이다.

 

🐉State 끌어올리기


단방향 데이터 흐름이라는 원칙에 따라, 하위 컴포넌트는 상위 컴포넌트로부터 전달받은 데이터의 형태 혹은 타입이 무엇인지만 알 수 있다.

상위 컴포넌트의 "상태를 변경하는 함수" 그 자체를 하위 컴포넌트로 전달하고, 이 함수를 하위 컴포넌트가 실행하는 방식으로 해결하면 단방향 데이터 흐름 원칙을 지키며 해결할수 있다.

이것이 상태 끌어 올리기이다.

import React, { useState } from "react";

export default function ParentComponent() {
  const [value, setValue] = useState("이전 값");

  const handleChangeValue = () => {
    setValue("달라진 값");
  };

  return (
    <div>
      <div>값은 {value} 입니다</div>
      <ChildComponent handleChangeValue={handleChangeValue}/>
    </div>
  );
}

function ChildComponent(props) {
  const handleClick = () => {
    props.handleChangeValue()
  };

  return <button onClick={handleClick}>값 변경</button>;
}

ChildComponent는 ParentComponent 와 부모 자식 관계이다.

 

자식에서 버튼을 눌러 부모 컴포넌트에 있는 handler함수를 실행해 setValue를 통해 value를 변화 시켜야 한다.

자식 컴포넌트를 실행할때, handleChangeValue를 props로 보내고 이를 onclick으로 실행될때 작동이 되도록 하였다.

저작자표시 (새창열림)

'프론트엔드 > Codestates' 카테고리의 다른 글

[JSON]JSON.stringify  (0) 2022.10.21
[알고리즘] 재귀  (0) 2022.10.20
[HTTP/네트워크] REST API  (2) 2022.10.07
[HTTP/네트워크] 브라우저의 작동원리 (보이는 곳)  (0) 2022.10.06
[HTTP/네트워크] HTTP  (0) 2022.10.06
    '프론트엔드/Codestates' 카테고리의 다른 글
    • [JSON]JSON.stringify
    • [알고리즘] 재귀
    • [HTTP/네트워크] REST API
    • [HTTP/네트워크] 브라우저의 작동원리 (보이는 곳)
    LeeWang_31
    LeeWang_31
    이왕 할 거면 기분 좋게

    티스토리툴바