https://legacy.reactjs.org/docs/typechecking-with-proptypes.html#gatsby-focus-wrapperd
Typechecking With PropTypes – React
A JavaScript library for building user interfaces
legacy.reactjs.org
[React & Express] 04 JSX 실습, extends React.Component ,PropTypes
App.js
index.js

코드 설명:
1. `import React from "react";` : React 모듈을 불러옵니다. 이 모듈은 JSX 문법을 해석하고, 컴포넌트를 만들기 위해 필요한 기능들을 제공합니다.
2. `<div className="App">` : className 속성을 사용해서 CSS 클래스를 추가한 div 엘리먼트를 선언합니다. 이 엘리먼트는 App 컴포넌트의 루트 역할을 합니다.
3. `<h1>Hello CodeSandbox</h1>` : h1 엘리먼트를 사용해서 "Hello CodeSandbox"라는 텍스트를 화면에 출력합니다.
4. `<h2>Start editing to see some magic happen!</h2>` : h2 엘리먼트를 사용해서 설명을 추가합니다.
5. `<Codelab />` : Codelab 컴포넌트를 호출합니다. 이때 Codelab 컴포넌트는 App 컴포넌트의 자식 컴포넌트로서 호출되는 구조입니다.
6. `class Codelab extends React.Component { ... }` : Codelab 컴포넌트를 클래스 형태로 정의합니다.
7. `<div>Codelab</div>` : div 엘리먼트를 사용해서 "Codelab"이라는 텍스트를 출력합니다. 이것이 Codelab 컴포넌트에서 렌더링되는 내용입니다.
8. `const rootElement = document.getElementById("root");` : index.html 파일에서 root 엘리먼트를 가져옵니다.
9. `const root = createRoot(rootElement);` : CreateRoot API를 사용해서 root 렌더 요소를 생성합니다.
10. `<StrictMode>...</StrictMode>` : React에서 제공하는 태그 중 하나인 StrictMode를 사용하면, 예상치 못한 사이드 이펙트가 발생할 가능성이 있는 코드를 빠르게 감지할 수 있습니다.
11. `<Codelab />` : Codelab 컴포넌트를 렌더링합니다. 이때 React.StrictMode 아래에서 호출되는 구조입니다.
추가 Html변경해서
을 추가한다면,
추가 App.js
변경후 html,

hi i Codelab 배경색 추가하는 방법,

주석을 달려면 <div> 태그 안에 달아야된다.
오류그림

수정그림,

PropTypes,
공식문서를 읽어보자,
https://legacy.reactjs.org/docs/typechecking-with-proptypes.html#gatsby-focus-wrapperd
Typechecking With PropTypes – React
A JavaScript library for building user interfaces
legacy.reactjs.org
optionalArray: prop으로 전달받을 값이 배열인 경우, PropTypes.array로 지정합니다.
optionalBool: prop으로 전달받을 값이 불리언인 경우, PropTypes.bool로 지정합니다.
optionalFunc: prop으로 전달받을 값이 함수인 경우, PropTypes.func로 지정합니다.
optionalNumber: prop으로 전달받을 값이 숫자인 경우, PropTypes.number로 지정합니다.
optionalObject: prop으로 전달받을 값이 객체인 경우, PropTypes.object로 지정합니다.
optionalString: prop으로 전달받을 값이 문자열인 경우, PropTypes.string로 지정합니다.
optionalSymbol: prop으로 전달받을 값이 심볼인 경우, PropTypes.symbol로 지정합니다.
이러한 PropTypes를 이용하여 컴포넌트에 전달되는 prop의 타입을 검증하고, 잘못된 타입이 전달될 경우 콘솔에 경고
메시지를 출력함으로써 버그를 예방할 수 있습니다.
PropTypes를 추가하려면 다음과 같이 내보내기 전에 별도의 함수에서 구성 요소를 선언할 수 있습니다.
function HelloWorldComponent({ name }) {
return (
<div>Hello, {name}</div>
)
}
export default HelloWorldComponent
그런 다음 PropTypes를 에 직접 추가할 수 있습니다 HelloWorldComponent.
import PropTypes from 'prop-types'
function HelloWorldComponent({ name }) {
return (
<div>Hello, {name}</div>
)
}
HelloWorldComponent.propTypes = {
name: PropTypes.string
}
export default HelloWorldComponent
this.props.name 실습하기,
import "./styles.css";
import React from "react";
class Codelab extends React.Component {
render() {
return (
<div>
<h1>Hello {this.props.name}</h1>
</div>
);
}
}
export default function App() {
return (
<div className="App">
<h1>Hello CodeSandbox</h1>
<h2>Start editing to see some magic happen!</h2>
<Codelab name="hahaha" />
</div>
);
}

this.props.children 실습하기
import "./styles.css";
import React from "react";
class Codelab extends React.Component {
render() {
return (
<div>
<h1>Hello {this.props.name}</h1>
<h1>Hello {this.props.children}</h1>
</div>
);
}
}
export default function App() {
return (
<div className="App">
<h1>Hello CodeSandbox</h1>
<h2>Start editing to see some magic happen!</h2>
<Codelab name="hahaha"> jajaja.</Codelab>
</div>
);
}

'컴퓨터공부 > React' 카테고리의 다른 글
[Asac 웹풀스택] 리액트공부 (0) | 2023.08.16 |
---|---|
react Map으로 객체 연결 이미지 뿌려주기 (0) | 2023.06.26 |
[React & Express] 04 스코프란 무엇인가? (0) | 2023.05.20 |
[React & Express] 03 class, constructor, static ,extend, super (0) | 2023.05.20 |
댓글