1. JSX 문법
2. Components
3. Props , State
4. Conditional Rendering 조건부 렌더링
5. Create React App
JSX : JavaScript를 확장한 문법
return()
안에서 쓰인다.// 예시
const APP = () => {
const hi = 'Hi everybody!';
return <div>{hi}</div>;
};
React.createElement(component, props, ...children)
를 호출하기 위한 마법이다.// JSX문법
function hello() {
return <div>Hello world!</div>;
}
// Babel에 의해 컴파일된 순수JS코드
function hello() {
return React.createElement("div", null, "Hello world!");
}
<div>나 <Fragment>가 부모태그인 형태
export default function App() {
const name = 'Haha';
return (
<Fragment>
<div>{name}</div>
<div>{name}</div>
</Fragment>
)
}
/>
를 써줘야 한다. <div></div>
<img />
<!-- 주석 -->
이지만 JSX는 {/*주석*/}
으로 표기한다.className
으로 사용해야 한다.<div class="list">list 1</div> // X
<div className="list">list 1</div> // O
""
나 중괄호{}
중 하나만 사용가능하다.const element = <a href="http://www.reactjs.org"> link </a>;
const element = <img src={user.avatarUrl} />;
background-color => backgroundColor
font-size => fontSize
onclick => onClick
function App() {
const style = {
backgroundColor : "red",
fontSize: "12px"
}
return (
<div style={style}>list 1</div>
)
1. JSX 내부
{조건문 ? true값 : false값}
)를 사용function Component() {
return (
<div>
{
condition ? <div>true값</div> : <div>false값</div>
}
</div>
)
}
2. JSX 외부
function Welcome(user) {
if(user){
return <h1>Hello, {formatName(user)} ! </h1>;
}
return <h1>Hello, Nice to meet you </h1>;
}
JSX return()
내부에선 {}
중괄호안에 JS표현식을 넣는다.
export default function App(){
const name = "Haha"; //js코드
return ( //jsx문법
<div>
<h1>{name}</h1> // {} 중괄호 안에 JS값을 받아옴
</div>
);
}
const posts = [
{id: 1, title: 'Hello', content: 'World'},
{id: 2, title: 'Hola', content: 'Welcome!'}
];
function Blog(){
const content = posts.map((post) =>
<div key={post.id}> // key 속성
<h3>{post.title}</h3>
<p>{post.content}</p>
</div>
);
return (
<div>{content}</div>
);
}