// 파일명과 컴포넌트명은 일치하는 것이 좋음
export default function Component1(props) {
// JS 작성 영역
// HTML 작성 영역 (JSX)
return (
<>
{/* JSX는 반드시 하나의 최상위 요소로 감싸야 함 */}
<h1>Hello, {props.name}</h1>
</>
);
}
function으로 선언props를 통해 외부 속성 전달return 뒤에는 반드시 하나의 최상위 요소로 JSX 작성export default는 단 하나만 존재해야 함import Component1 from './Component1';
function App() {
return (
<Component1 name="React" />
);
}
function App() {
return (
<>
<Component1 name="React" />
</>
);
}
<br />, <img />)()로 감싸야 함{}로 감싸서 사용{/* 주석 */} 형태로 작성function App() {
return <Greeting name="홍길동" />;
}
function Greeting(props) {
return <h1>안녕하세요, {props.name}님!</h1>;
}
💡
props.name은<Greeting name="홍길동" />에서 전달된 값
import './Task2.css'
import './Task2.css'
const products = [
{ title: "무선 키보드", price: 45000, inStock: true },
{ title: "게이밍 마우스", price: 32000, inStock: false },
{ title: "27인치 모니터", price: 280000, inStock: true }
];
export default function Task2(props) {
// JS
// retun
return (<>
<div class="products">
<Product item={products[0]} />
<Product item={products[1]} />
<Product item={products[2]} />
</div>
</>)
} // func end
function Product(props) {
// js
const { title, price, inStock } = props.item
// return
return (<>
<ul>
<li>{title}</li>
<li>가격 : {price.toLocaleString()}</li>
<li>{inStock ? "재고 있음" : "재고 없음"}</li>
</ul>
</>)
} // func end