#2 JSX & PROPS

2021. 1. 10. 04:14·💻 Study/웹
728x90

2.0 Creating your first React Component

Component

: HTML을 반환하는 함수이다.

ex) <App />

 

react는 component를 사용하여 HTML처럼 작성하려는 경우에 필요하다.

javascript와 HTML 사이의 이러한 조합을 JSX라고 한다.

 

새로운 component Potato를 만들어보자

 

index.js에서 한 번에 둘 이상의 component를 rendering하려하면, 오류가 발생한다.

⛔ react application은 하나의 component만을 rendering해야 한다.

 

-> 올바르게 사용한 예시

react는 Component를 가져와 Browser가 이해할 수 있는 평범한 일반 HTML로 만든다.

 

📌 <정리 />

react application은 하나의 component만을 rendering할 수 있다.
따라서 모든 것은 application(<App />) 안에 들어가야만 한다.

application안에서 많은 component를 넣을 수 있다.
그리고 이러한 component 안에 더 많은 component를 import 할 수 있다.

2.1 Reusable Components with JSX + Props

App.js 파일 내에 여러 컴포넌트 만들어서 사용

react가 멋진 이유

: 재사용 가능한 component를 만들 수 있다!

component를 계속해서 반복하여 사용할 수 있다.

 

Props

food component에 fav라는 이름의 property(props)를 kimchi라는 value로 준다.

 

If you want to look nice:

📌 JSX = HTML + Javascript

2.2 Dynamic Component Generation

javascript의 object

list의 object를 가져와 function component, food component를 동적으로 rendering해보자!

 

map

: array로부터 rendering을 한다. 결과를 array로 반환한다.

 

■ Javascript에서...

friends = ["dal", "mark", "lynn", "dane"]

// JS
friends.map(function(friend) {
    return friend + "💜";
})

// JSX
friends.map(function(friend => (
    return friend + "💜";
))

결과 

▶ (4) ["dal💜", "mark💜", "lynn 💜", "dane💜"]

 

■ JSX

  • Food component: 2개의 props를 가진다.
    - name
    - picture
  • foodILike 의 Object들
    - name
    - image
  • map의 dish
    : Object

결과

map을 통해 dish에 FoolILike 리스트의 각 Object들이 mapping되었다.


2.3 map Recap

각 component를 구별하기 위한 unique한 key값을 줘야 한다.

const foodILike = [
  {
    id: 1,
    name: "Kimchi",
    image:
      "http://aeriskitchen.com/wp-content/uploads/2008/09/kimchi_bokkeumbap_02-.jpg"
  }
]

key prop은 Food에서 사용하지 않으므로 Food로 전달하지 않는다.

이것은 기본적으로 react 내부에서 사용하기 위한 것이다.

+ img element는 반드시 alt를 넣어준다.

 

2.4 내용: 우리가 원하는 props가 우리가 갖고 있는 props인지 확인하는 과정이 필요하다.

2.4 Protection with PropTypes

father component로부터 전달 받은 props가 우리가 예상한 props인 지 항상 점검할 필요가 있다.

 

prop-types

설치

npm i prop-types

: 내가 전달받은 props가 내가 원하는 props인지 확인해준다.

- packages.json의 dependencies에 prop-types가 추가되었다면, 제대로 설치된 것이다.

 

sometimes)

food component는 다른 file에 있을 수 있고, picture를 보내는 대신 image를 보내는 실수를 할 수있다.

이때, 실수와 component는 제대로 동작하지 않을 것을 알려주는 무언가 => prop types

 

import PropTypes from 'prop-types';

Food.propTypes = {
  name: PropTypes.string.isRequired,
  picture: PropTypes.string.isRequired,
  rating: PropTypes.number
}
  • PropTypes.Type: Type or undefined

PropTypes.Type.isRequired: must be Type

728x90

'💻 Study > 웹' 카테고리의 다른 글

#5 CONCLUSIONS  (0) 2021.01.10
#4 MAKING THE MOVIE APP  (0) 2021.01.10
#3 STATE  (0) 2021.01.10
#1 SETUP  (0) 2021.01.10
#0 INTRODUCTION  (0) 2021.01.10
'💻 Study/웹' 카테고리의 다른 글
  • #4 MAKING THE MOVIE APP
  • #3 STATE
  • #1 SETUP
  • #0 INTRODUCTION
soyang.
soyang.
코딩 및 개발 일지를 기록합니다.
  • soyang.
    소소한 코딩일지
    soyang.
  • 전체
    오늘
    어제
  • 링크

    • Github 🐾
    • 포트폴리오 📓 (리뉴얼중)
    • LinkedIn 👩🏻‍💼
  • 공지사항

    • 소소한 코딩일지
  • 블로그 메뉴

    • 방명록
    • 분류 전체보기 (181)
      • 🚩 목표 & 회고 (9)
      • 📓 Papers (10)
      • 🧇 Algorithm (44)
        • 이론 (1)
        • LeetCode (2)
        • 프로그래머스 (30)
        • 백준 (11)
      • 💻 Study (47)
        • 🤖 AI 인공지능 (3)
        • Python 파이썬 (3)
        • Docker 도커 (4)
        • 웹 (20)
        • 안드로이드 (2)
        • JAVA 자바 (1)
        • Firebase (3)
        • Linux 리눅스 (10)
      • 🍪 Projects (2)
      • 🎒 학교 (44)
        • 대학원 도비 (2)
        • 21 동계 모각코: 슈붕팥붕 (13)
        • 21 하계 모각코: 와팬호 (13)
        • 20 동계 모각코: 와팬호 (13)
      • 활동들 (16)
        • 인프런 대학생 LEAF 2기 (9)
        • 2021 Silicon Valley Online .. (7)
  • 태그

    코딩테스트
    Artificial Intelligence
    React
    알고리즘
    백준
    Python
    노마드코더
    모각코
    error
    리액트
    Gentoo
    알고리즘스터디
    공부
    프로그래머스
    인프런대학생Leaf
    Ai
    Algorithm
    목표
    programmers
    Linux
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.3
soyang.
#2 JSX & PROPS
상단으로

티스토리툴바