https://www.youtube.com/watch?v=FqnAFX9lQPQ
- React에서는 html 대신에 JSX 라는 문법을 사용한다.
- class가 아니라 className을 사용하는 이유 :
JavaScript에서 class라는 예약어가 있기 때문에 React는 이처럼 조금씩 문법이 다르다.
- html과 거의 비슷한데 왜 html+css 대신에 React를 사용하느냐?
데이터 바인딩을 쉽게 할 수 있다.
* 데이터 바인딩 : 서버에서 받아 온 데이터를 자바스크립트로 저장한 다음 HTML에 꽂아 넣는 작업
{중괄호}를 이용해서 쉽게 바꿀 수 있기 때문!
React, Vue, Angular를 사용하는 이유도 바로 이것 때문이라고 한다.
< App.js >
import './App.css';
import logo from './logo.svg';
function App() {
let posts = '강남 고기 맛집';
function 함수() {
return 100
}
return (
<div className="App">
<div className='black-nav'>
<div style={ { color : 'wheat', fontSize : '30px'} }>개발 Blog</div>
</div>
<img src={ logo } />
<h4> { 함수() } </h4>
{/* <h4> { posts } </h4> */}
</div>
);
}
export default App;
이런 식으로 변수화 시켜서 데이터 바인딩을 쉽게 처리할 수 있는 게 리액트의 장점이다. 라인이 길어지는 걸 막고, 익숙해진다면 시간도 절약할 수 있어서 편하다는 게 강점!
<div style={ { color : 'wheat', fontSize : '30px'} }>개발 Blog</div>
이 부분도 이렇게 바꿀 수 있다.
let ftStyle = { color : 'wheat', fontSize : '30px'}
<div style={ ftStyle }>개발 Blog</div>
스타일도 변수화 시켜서 style 안에 넣는다.
< App.css >
.App {
text-align: center;
}
body {
font-family: "nanumsqure";
}
.black-nav {
background: black;
width: 100%;
display: flex;
color: white;
padding: 20px;
font-weight: 600;
font-size: 20px;
}
.App-logo {
height: 40vmin;
pointer-events: none;
}
@media (prefers-reduced-motion: no-preference) {
.App-logo {
animation: App-logo-spin infinite 20s linear;
}
}
.App-header {
background-color: #282c34;
min-height: 100vh;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
font-size: calc(10px + 2vmin);
color: white;
}
.App-link {
color: #61dafb;
}
@keyframes App-logo-spin {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
'개발일지 > React & C++' 카테고리의 다른 글
[C++] 포인터 (0) | 2023.09.17 |
---|---|
[React : 05] Component (1) | 2022.03.20 |
[React : 04] 이벤트 리스너 ( 좋아요 버튼 ) (0) | 2022.03.17 |
[React : 03] state를 이용해 글 목록 만들기 (0) | 2022.03.15 |
[React : 01] 세팅 (0) | 2022.03.14 |