import React from 'react';
▶ 번들러의 사용
import logo from './logo.svg';
import './App.css';
function App() {
return (
<div className="App">
<header className="App-header">
<img src={logo} className="App-logo" alt="logo" />
<p>
Edit <code>src/App.js</code> and save to reload.
</p>
<a
className="App-link"
href="https://reactjs.org"
target="_blank"
rel="noopener noreferrer"
>
Learn React
</a>
</header>
</div>
);
}
JSX는 자바스크립트 확장 문법이다. JSX는 브라우저에서 실행되기 전에 코드가 번들링 되는 과정에서 바벨을 사용하여 일반 자바스크립트 형태의 코드로 변환된다.
▶ JSX코드 → 자바스크립트 형태의 코드로 변환
[JSX코드]
function App() {
return(
<div>
<Hello <b>react</b>
</div>
);
}
[변환되는 자바스크립트 코드]
function App() {
return React.createElement("div", null, "Hello ", React.createElement("b", null, "react"));
}
1. 보기 쉽고 익숙하다
→ 위의 JSX코드와 변환된 자바스크립트 코드를 보면 JSX코드가 더 가독성이 높고 작성하기 쉬움을 한눈에 알 수 있다.
2. 더욱 높은 활용도를 가지고 있다
→ src/index.js를 보면 알 수 있듯이 JSX에서는 <div>나 <span>과 같은 HTML 태그뿐만 아니라 앞으로 만들 컴포넌트들도 작성할 수 있다.
[참고를 위한 src/index.js코드]
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import reportWebVitals from './reportWebVitals';
ReactDOM.render(
<React.StrictMode>
<App />
</React.StrictMode>,
document.getElementById('root')
);
// If you want to start measuring performance in your app, pass a function
// to log results (for example: reportWebVitals(console.log))
// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
reportWebVitals();
JSX 문법을 올바르게 사용하기 위한 몇 가지 규칙 알기
1. 컴포넌트에 여러 요소가 있다면 반드시 하나의 부모 요소로 감싸기
2. JSX 내부에서 자바스크립트 표현식을 작성하려면 코드를 { }로 감싸기
3. if 문 대신에 조건부 연산자(삼항 연산자) 사용하기
4. AND 연산자(&&)를 사용해 조건부 렌더링 하기
5. undefined 렌더링 하지 않기
6. DOM 요소에 스타일을 적용할 때는 문자열 형태가 아닌 객체 형태로 넣어주기(단, styled-component 형식보단 scss를 이용한 스타일 적용 추천)
7. class 대신 className 사용하기
8. 태그 꼭 닫아주기
9. JSX 내부의 주석은{/* ··· */}
같은 형식으로 작성하기
※ const와 let, var
에디터 하단에 [보기] - [문제] 탭을 클릭하여 경고 창 확인하기
[F1] 누르고 format이라 입력한 후 Enter!
- 변경 전
- 변경 후
[파일] - [기본 설정] - [설정] 메뉴 클릭하기
Q1) 리액트에서 주로 사용하는 번들러는 무엇일까요?
답 : ( )
Q2) JSX는 자바스크립트 문법인가요?(O, X 문제)
답 : ( )
Q3) 삼항 연산자 형식 적어보기! (조건은 비교문이라 표시, 참일 때는 A, 거짓일 때는 B로 표시)
답 : ( )
Q4) JSX에서는 class가 아닌 '이것'을 쓰는데요 '이것은 무엇일까요?
답 : ( )
Q5) 리액트에서 DOM 요소에 스타일을 적용할 때는 문자열이 아닌 객체 형태로 넣어줘야 합니다. 스타일 이름 중에서 background-color처럼 -문자가 포함되는 이름이 있는데, 리액트에선 -문자를 없애고 '이 표기법'으로 작성해야 합니다. 따라서 background-color는 ( )로 작성합니다. '이 표기법'은 무엇이며 괄호 안 또한 채워주세요.
답 : ( ), ( )
▼정답 확인하기
A1) 웹팩
A2) X, 확장된 문법입니다.
A3) 비교문?A:B
A4) className
A5) 카멜표기법, backgroundColor
[리액트를 다루는 기술]5장 ref:DOM에 이름달기 (0) | 2021.11.01 |
---|---|
[리액트를 다루는 기술]6장 컴포넌트 반복 (0) | 2021.11.01 |
[리액트를다루는기술]3장 컴포넌트 (0) | 2021.10.11 |
[리액트를다루는기술]4장 이벤트 (0) | 2021.10.11 |
[리액트를다루는기술]1장 리액트 시작 (0) | 2021.10.04 |