React

[React] 간단한 맛집 추천 블로그 - 1

sejin2 2024. 3. 21. 17:34

컴포넌트를 사용하면서 다른 값 넣기

import './App.css';

function App() {
  return (
    <div className="App">
      <h2 className="title1">맛집 추천 Blog</h2>
      <div className="list">
          <h4>이레구내식당</h4>
          <p>2월 28일 <span className="span-left">🐷</span></p>
      </div> 
      <div className="list">
          <h4>영남집</h4>
          <p>2월 28일 <span className="span-left">🐷</span></p>
      </div> 
      <div className="list">
          <h4>얌샘김밥</h4>
          <p>2월 28일 <span className="span-left">🐷</span></p>
      </div> 
     <List/>
     <List/>
     <List/>
    </div>
  );
}

function List() {
  return ( 
      <div className="list">
          <h4>이레구내식당</h4>
          <p>2월 28일 <span className="span-left">🐷</span></p>
      </div> 
  )
}

export default App;

function App() {
  let title = ['이레구내식당', '영남집', '얌샘깁밥']; 
  return (
    <div className="App">
      <h2 className="title1">맛집 추천 Blog</h2>
      <div className="list">
          <h4>{title[0]}</h4>
          <p>2월 28일 <span className="span-left">🐷</span></p>
      </div> 
      <div className="list">
          <h4>{title[1]}</h4>
          <p>2월 28일 <span className="span-left">🐷</span></p>
      </div> 
      <div className="list">
          <h4>{title[2]}</h4>
          <p>2월 28일 <span className="span-left">🐷</span></p>
      </div> 
     <List/>
     <List/>
     <List/>
    </div>
  );
}

===> 이렇게 하면 각 인덱스 번호에 무슨 값이 들어가는지 알아야하는 문제가 발생한다. 

useState ⇒ state를 변경하는 변경용 함수

버튼을 생성해서 버튼을 클릭하면 값이 하나씩 바뀌도록 한다.

버튼을 눌러보면, 

문자열이 하나의 객체처럼 인식되어, 글씨가 하나씩 들어온다...

현제 이레구내식당, 영남집, 얌샘김밥으로 되어있는 값 중 가장 첫 번째 값을 이향으로 바꾸기 위해 버튼에 위와 같이
이벤트를 걸어주면, 원본이 수정되므로 값을 복사해서 사용한다.

이렇게 하면, 원본 값을 바꾸지 않고 사용할 수 있다.

useState는 현재 상테에서 값이 바뀌었을 때만 렌더링 해준다.

title은 배열이기때문에 주소 값이 들어있다. copy를 하면 그 안의 내용물인 주소 값이 같기 때문에 재렌더링하지 않는다. 
따라서 

이런식으로 복사를 하는 것이 아니라,

이렇게 해야한다. 즉, 객체나 배열일 때 [ … ] 이렇게 사용하면 괄호를 벗겨서 새로운 배열/객체로 만들어 반환을 해준다.
그러면 주소가 달라짐 !

더보기

...은 spread operator 문법 array나 object의 자료형의 왼쪽에 붙일 수 있다.
의미 : 괄호를 벗겨 새로운 array나 object를 만들어 반환

배열이나 객체로 되어있는 것을 바꿀 때, 이런식으로 카피해서 많이 사용한다.

수정 버튼을 누르면 값이 잘 바뀌는 것을 확인할 수 있다.

'React' 카테고리의 다른 글

[React] 리액트 부트스트랩 적용  (0) 2024.03.21
[React] 간단한 맛집 추천 블로그 - 2  (0) 2024.03.21
[React] Component , 구조 분해 할당  (0) 2024.03.21
[React] JSX  (0) 2024.03.21
[React] 리액트 설치 및 실행하기  (0) 2024.03.21