BJSNuruhee / levelup

0 stars 0 forks source link

[React] JSX란 무엇인가? #52

Closed yejun95 closed 8 months ago

yejun95 commented 8 months ago

JSX란 무엇인가?

✔ JSX의 역할

image

JSX 사용한 코드 image

JSX를 사용하지 않는 코드 image

image

✔JSX 장점

코드가 간결해진다.

image

Injection Attacks 방어 image

✔ 사용법

image

태그 속성에 값을 넣는 법

image

자식(children) 정의하는 법

image



✔ JSX 코드 실습

image

// Book

import React from 'react';

function Book(props) {
  return (
    <div>
      <h1>{`이 책의 이름은 ${props.name}입니다.`}</h1>
      <h2>{`이 책은 총 ${props.numOfPage}페이지로 이뤄져 있습니다.`}</h2>
    </div>
  );
}

export default Book;



// Library

import React from 'react';
import Book from './Book';

function Library(props) {
  return (
    <div>
      <Book name="처음 만난 파이썬" numOfPage={300}/>
      <Book name="처음 만난 AWS" numOfPage={400}/>
      <Book name="처음 만난 리액트" numOfPage={500}/>
    </div>
  )
}

export default Library;


import React from 'react'; import ReactDOM from 'react-dom/client'; import './index.css'; import App from './App'; import reportWebVitals from './reportWebVitals';

import Library from './chapter_03/Library';

const root = ReactDOM.createRoot(document.getElementById('root')); root.render(

); // If you want to start measuring performance in your app, pass a function // to log results (for example: reportWebVitals(console.log)) // or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals reportWebVitals(); ```

- localhost:3000 에서 화면 확인 ![image](https://github.com/BJSNuruhee/levelup/assets/121341413/e868765b-bede-48e4-ba1c-7d2343938da0)

- 만약 JSX를 사용하지 않고 Book 컴포넌트를 만들면 아래와 같이 된다. - 기존 것이랑 비교하면 매우 가독성이 좋지 않은 것을 볼 수 있다.
![image](https://github.com/BJSNuruhee/levelup/assets/121341413/fbb619b3-8b94-47d4-b0b0-3eb8d5b3d413)

- 💡 주의 사항 : jsx에서 `return`문을 사용할 때 소괄호() 로 사용해야 한다.


**Reference**
[인프런 Inje Lee : 처음 만난 리액트(React)](https://www.inflearn.com/course/lecture?courseSlug=%EC%B2%98%EC%9D%8C-%EB%A7%8C%EB%82%9C-%EB%A6%AC%EC%95%A1%ED%8A%B8&unitId=113264&tab=curriculum)