React 46

서스펜스, 비동기 로딩

서스펜스란 어떤 컴포넌트가 읽어야 하는 데이터가 아직 준비가 되지 않았다고 리액트에게 알리는 방법. 리액트에서 비동기 데이터를 읽어 오는 것을 표준화. 이거 리액트에서 ~~비동기 이렇게 하라고 제공해 주는데 왜 안돼냐.. 여튼 로딩방법 const [success, setSuccess] = useState(false); const [data, setData] = useState([]); useEffect(()=>{ axios.get(~~~~) .then((res)=>{ return res.date }) .then((data)=>{ setData(data); setSuccess(true); }) },[]) return( { success?( { data.map((el)=>{ return {el.name} }..

React 2023.11.15

스프레드

배열이나 객체의 속성들을 펼쳐서 주는 것. 예를 들어 배열 하나를 ...arr 하면 내부의 값을 쫙 개개로 뿌려줌 객체도 가능함 const [dbData, setDbData] = useState({ _id:'', name:'', belong:'', phone:'', status:'' }); const changeHandler = (e)=>{ setDbData({ ...dbData, [e.target.name]:e.target.value }); } 이렇게가 가능. e.target은 input인데 name이 보통 db의 열이름이랑 맞추니까. 그게 관례니까. 배열도 가능

React 2023.11.15

리액트 이미지 가져오는 법

import img02 from './images/img02.jpg'; function App() { return ( {/* */} // ); } 저렇게 4가지 방법, 아니 첫번째 저렇게 가져오는 건 문제. 걍 html에서 쓰듯이 하면 안됨. 저거 빼고 아래 3개 import 해서 가져오거나 아예 reqire 해서 가져오거나. 근데 그냥 public 폴더에 images 폴더 만들어서, 거기서 가져오는 게 좋음. process.env는 환경변수들 있는 객체인데, 거기서 PUBLIC_URL 이 public 폴더 url임.

React 2023.11.09

함수에서 사용하는 생명주기 useEffect()

이거는 들어온 값이 바뀔 때 마다 호출됨. 이거는 값이 바뀌면 감지하고 그걸 return해 준다. useEffect는 배열로 반환을 하는데, useEffect에 들어가 있는 배열을 의존성 배열이라고 한다. useEffect 구조 useEffect(()=>{}, []) 이렇게 useEffect(콜백, 배열); 저 배열안에 무언가 있냐 없냐에 따라 create로 동작하냐, update로 동작하냐. 콜백은 create나 update 하는 순간 실행하고 싶은 내용들. 저 배열은 반환하고 싶은 값들 넣으면 됨. update 되었을 때 보통 저기에 fetch 등해서 나오는 값을 받아 놓음. 그러면 딱 불러왔을 때 값이 바뀌면서 그걸 감지해서 콜백을 실행함. const [count, setCount] = useSta..

React 2023.11.02

형제끼리 값 다루기

이건 어쩔 수 없음. 부모를 통해서 가야 함. function App() { const [count, setCount] = useState(0); const handlerCount = (value)=>{ setCount(count+value); } return ( ); } 이렇게 하고 function Viewer({count}) { return ( 현재 카운트 {count} ); } 뷰에서는 저렇게 그냥 그대로 쓰면 되고. 이미 useState() 상태로 들어온 거라 (아마?) function Controller({handlerCount}) { return ( {handlerCount(-1)}}>-1 {handlerCount(-10)}}>-10 {handlerCount(-100)}}>-100 {handl..

React 2023.10.31