리액트 복습
- useEffect
- 함수가 실행이 되면서 useState 를 이용해 업데이트 해주면 함수를 다시 호출한다.
- 호출된 함수는 다시 실행되고 fetch 메서드가 반복해서 실행되는 것이다.
- 무한 루프에 빠지지 않으려면 컴포넌트가 보여질 때 한 번만 네트워크 통신을 통해 데이터를 받아오고 그 뒤로는 다시는 네트워크 요청을 하지 않게 해야한다. (useEffect 사용)
- 컴포넌트가 UnMount(화면에서 사라짐) 될 때 메모리를 정리하거나 네트워크 통신을 닫아야 한다면 useEffect 에 return 함수를 전달해준다.
- return 의 콜백함수는 컴포넌트가 화면에서 사라질 때 호출된다.
- 특정한 값이 변경될 때 다시 함수를 호출해야 할 경우에도 사용한다.
export default function Products() {
const [products, setProducts] = useState([]);
fetch("data/product.json")
.then(res => res.json())
.then(data => setProducts(data))
export default function Products() {
const [products, setProducts] = useState([]);
useEffect(() => {
fetch("data/product.json")
.then(res => res.json())
.then(data => setProducts(data));
return () => console.log("청소")
}, []);
자바스크립트 요약
- ES6 Arrow Functions
- Arrow function은 JavaScript 환경에서 함수를 생성하는 또 다른 방법이다.
- 더 짧은 구문 외에도 this 키워드의 범위를 유지하는데 이점을 제공합니다
const callMe = (name) => {
console.log(name);
}
- Exports & Imports
- React 프로젝트에서 모듈이라 불리는 여러 자바스크립트 파일들에 코드를 분할한다.
- 다른 파일의 기능에 계속 액세스하려면 export statements가 필요하다.
- Classes
- Classes는 constructor 함수와 prototypes를 대체하는 기능이며, 자바스크립트 객체에 blueprints를 정의할 수 있다.