npx create react-app "폴더명"
하지만 React에서 쓰이는 문법이기 때문에 JS의 공식적인 문법은 아니다.
브라우저에서 실행되기 전 바벨을 사용하여 일반적인 JS 형태로 변환된다.
JSX는 한 파일에 JS와 HTML을 작성할 수 있어 편리하다.
function App() {
const name = 'Josh perez';
return (
<div>
Hello, {name}
</div>
);
}
import React, {useState} from 'react' // useState를 사용할 수 있는 React 모듈에서 가져와 선언해줌
const [데이터, 변환데이터] = useState(초기값(생략가능));
import React, {useState} from 'react'
function CheckboxExample() {
const [isChecked, setIsChecked] = useState(false);
const handleChecked = (event) => {
setIsChecked(event.target.checked);
};
return (
<div className="App">
<input type="checkbox" checked={isChecked} onChange={handleChecked} />
<span>{isChecked ? "Checked!!" : "Unchecked"}</span> / //if/else문 대신 삼항연산자로 조건문 걸어주기
</div>
);
}
map()
함수를 사용한다.map()
함수를 사용할 때는 반드시 'key' 라는 JSX 속성을 꼭 넣어야 한다.const posts = [
{ id: 1, title: "Hello World", content: "Welcome to learning React" },
{ id: 2, title: "Installation", content: "You can install React from npm" }
];
export default function App() {
// 한 포스트의 정보를 담은 객체 post를 매개변수로 받고
// obj를 JSX 표현식으로 바꿔 리턴해주는 함수 postToJSX
const postToJSX = (post) => {
return (
<div key={post.id}>
<h3>{post.title}</h3>
<p>{post.content}</p>
</div>
);
};
return (
<div className="App">
<h1>Hello JSX</h1>
{posts.map(postToJSX)}
</div>
);
}