
오늘은 JSX를 배우고 활용해보자!
✍ example
import logo from "./logo.svg";
import "./App.css";
import 구문은 다른 파일을 불러와 사용할 때 활용됨. 번들러(bundler) 를 사용. 웹팩을 사용. 로더(loader) 를 이용하여 SVG파일과 CSS파일도 불러올 수 있음. ✍ example
import logo from './logo.svg';
import './App.css';
function App() {
const name='리액트';
return (
<div>
<h1> {name} 안녕!</h1>
<h2>잘 작동하니? </h2>
</div>
);
}
export default App;
funtion 키워드를 사용하여 컴포넌트를 만들 수 있음. JSX라고 부름JSX는 자바스크립트의 확장문법이며 XML과 매우 비슷하게 생겼다. 코드가 번들링되는 과정에서 바벨을 사용하여 일반 자바스크립트 형태의 코드로 변환된다.
div나 span 같은 태그를 사용할 수 있을 뿐만 아니라 컴포넌트도 작성 가능. 컴포넌트에 여러 요소가 있다면 반드시 부모 요소 하나로 감싸야한다.
✍ example
import logo from './logo.svg';
import './App.css';
function App() {
return (
<div>
<h1>리액트 안녕!</h1>
<h2>잘 작동하니? </h2>
</div>
);
}
export default App;
✔ 결과 확인

-div를 사용하고 싶지 않다면 Fragment를 사용할 수 있다.
✍ example
import {Fragment} from 'react';
import './App.css';
function App() {
return (
<>
<h1>리액트 안녕!</h1>
<h2>잘 작동하니? </h2>
</>
);
}
export default App;
Fragment 는 위와 같은 형태로도 표현할 수 있다.JSX안에는 자바스크립트 표현식을 쓸 수 있다.
✍ example
import logo from './logo.svg';
import './App.css';
function App() {
const name='리액트';
return (
<div>
<h1> {name} 안녕!</h1>
<h2>잘 작동하니? </h2>
</div>
);
}
export default App;
{}로 감싸면 됨.JSX 내부의 자바스크립트 표현식에서 if문을 사용할 수 없다.
✍ example
import {Fragment} from 'react';
import './App.css';
function App() {
const name='리액트';
return (
<>
{name=== '리액트'?
(<h1>리액트 안녕!</h1>):
(<h2>리액트가 아닙니다.</h2>)}
</>
);
}
export default App;
삼항 연산자 를 사용.✔ 결과 확인

✍ example
import {Fragment} from 'react';
import './App.css';
function App() {
const name='뤼액트';
return (
<>
{name=== '리액트' && <h1>리액트 안녕!</h1>}
</>
);
}
export default App;
&&연산자로 조건부 렌더링이 가능한 이유는 리액트에서 false를 렌더링 할 때는 null과 마찬가지로 아무것도 나타내지 않기 때문. ✔ 결과 확인

리액트 컴포넌트에서는 함수에서 undefined만 반환하여 렌더링 하는 상황을 만들면 안된다.
✍ example
import {Fragment} from 'react';
import './App.css';
function App() {
const name='undefined';
return name || '값이 undefined입니다. ';
}
export default App;
OR(||) 연산자를 사용하면 사용할 값을 지정할 수 있음. JSX 내부에서 undefined를 렌더링 하는 것은 괜찮다 !!!
리액트에서 DOM 요소에 스타일을 적용할 때에는 문자열 형태로 넣는 것이 아니라 객체 형태로 넣어주어야 한다.
따라서 - 문자를 사용하지 않고 카멜 표기법으로 작성한다.
예를 들어 background-color 대신 backgroundColor로 작성!
JSX에서는 클래스를 사용할 때 class가 아닌 className으로 지정해주어야 한다.
HTML 코드를 작성할 때 가끔 태그를 닫지 않은 상태로 코드를 작성하기도 한다. 예를들어 <input>이라고만 입력해도 작동이 가능하다.
그러나 JSX에서는 </input>처럼 닫는 태가그 없으면 오류가 발생한다.
JSX 내부에서 주석을 작성할 때에는 {/*...*/}와 같은 형식으로 작성.
✍ example
import {Fragment} from 'react';
import './App.css';
function App() {
const name='리액트';
return(
<>
{/* 주석은 이렇게 작성합니다. */}
{name}
//하지만 이런 주석이나
/*이런 주석은 페이지에 그대로 나타나게 된다. */
</>
)
}
export default App;
✔ 결과 확인

다음 포스팅에서는 컴포넌트에 대해 공부해보겠습니다. 😊