html 문법만 사용한다면, 정적인 웹 페이지 밖에 만들 수 없습니다. 서버 등에서 가져온 데이터를 이용해 동적인 웹 페이지를 만들려면 어떻게 해야 할까요?
import logo from './logo.svg';
import './App.css';
function App() {
let post = '강남 우동 맛집';
return (
<div className="App">
<div className="black-nav">
<h4 style={{color: 'red', fontSize : '16px'}}>블로그임</h4>
</div>
<div className="list">
<h4>글제목</h4>
<p>2월 17일 발행</p>
</div>
</div>
);
}
export default App;
.App {
text-align: center;
}
div {
box-sizing: border-box;
}
.list {
padding-left: 20px;
text-align: left;
border-bottom: 1px solid grey;
}
.black-nav {
display: flex;
background: black;
width: 100%;
color: white;
padding-left: 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);
}
}
import logo from './logo.svg';
import './App.css';
import { useState } from 'react';
function App() {
let post = '강남 우동 맛집';
let [title, setTitle] = useState('남자코트 추천');
return (
<div className="App">
<div className="black-nav">
<h4 style={{color: 'red', fontSize : '16px'}}>블로그임</h4>
</div>
<div className="list">
<h4>{ title }</h4>
<p>2월 17일 발행</p>
</div>
</div>
);
}
export default App;
오늘은 state 사용법에 대해 알아보았습니다. state 를 사용하지 않은 일반 변수는 갑자기 변경되면 html에 자동으로 반영되지 않습니다. 그러나, state 는 갑자기 변경되면 자동으로 html에 재렌더링됩니다. 하지만 모든 것을 state 로 만들지는 않고, 자주 변경될 것 같은 부분만 state 로 두는 것이 좋습니다.