HTML, CSS, JavsScript 웹개발을 편리하게 해주는 라이브러리
yarn creat-react-app <프로젝트 제목>
yarn start
import './App.css';
function App() {
const postTitle = '강남 우동 맛집'
return (
<div className="App">
<div className='black-nav'>
<h4 style={{ color: 'aqua', fontSize: '20px'}}>MY BLOG</h4>
</div>
<h4 id={postTitle}>{postTitle}</h4>
</div>
);
}
export default App;
변동시 자동으로 html에 반영되게 만들고 싶을 때 사용한다.
state는 변동사항이 생기면 state쓰는 html도 자동으로 재렌더링해준다.
state 변경함수 (새로운 state)
array/object 담은 변수엔 화살표만 저장됨
※ 변수1 & 변수2 화살표가 같으면 변수1 == 변수2 비교해도 true 나옴
state가 array/object라면 독립적 카피본을 만들어서 수정해야함!
function Modal() {
return (
<div className='modal'>
<h4>제목</h4>
<p>날짜</p>
<p>상세내용</p>
</div>
)
}
💡 return 안에 div를 병렬로 하고 싶다면
전체 html을 div로 감싸거나 <></>
사용
의미없는 div 쓰기 싫으면 <> </> 이걸로 감싸면 된다. (fragment 문법)
fragment 문법
function Modal() {
return (
<>
<div className='modal'>
<h4>제목</h4>
<p>날짜</p>
<p>상세내용</p>
</div>
<div className='modal'>
<h4>제목</h4>
<p>날짜</p>
<p>상세내용</p>
</div>
</>
)
}
const Modal() => {
return (
<>
<div className='modal'>
<h4>제목</h4>
<p>날짜</p>
<p>상세내용</p>
</div>
</>
)
}
한 function 안에 있는 변수를 다른 function에서 맘대로 쓸 수 없다.
props라는 문법을 이용해 state를 <Modal>
까지 전해줘야 비로소 사용가능하다.
jsx안에서는 if/else 문법을 사용할 수 없으므로 삼항연산자를 사용해야 한다.
조건식 ? 조건식 참일 때 실행 : 조건식 거짓일 때 실행
{title.map((a , i) => {
return (
<div className='list' key={i}>
<h4 onClick={handleModal}>{a}<span onClick={ handleCount}>👍</span> {count}</h4>
<p>2월 17일 발행</p>
</div>
)})}
자식이 부모의 state 가져다 쓰고 싶을 때 사용한다.
※ props전송은 부모 -> 자식 만 가능
<input type='text' onChange={() => {실행할 코드}} />
onChange
, onInput
은 <input>
에 입력할 때마다 안에 있는 코드를 실행한다.
<input>
에 입력한 데이터는 state 아니면 변수에 저장해서 쓴다. const [input, setInput] = useState('');
return(
<input type='text' onChange={ (e) => {setInput(e.target.value);}}
)
💡 array 형태의 state 조작은 우선 카피부터 하면된다!
💡 array 자료에서 x번 째 데이터를 삭제하고 싶으면 array자료.splice(x, 1)
으로 삭제하면 된다.