반응형

분류 전체보기 1141

#6.4 Cleanup

cleanup function 아래와 같이 created와 destroyed 컴포넌트의 생성과 종료를 확인할 수 있다 function Hello() { useEffect(() => { console.log('created :-)'); return () => { console.log('destroyed :'); } function hiFn() { console.log('hi :-)'); return byeFn; } useEffect(hiFn, []); return Hello } // 위의 코드를 아래 코드로 간단하게 변경 function Hello() { useEffect(() => { console.log('hi'); return function () { console.log('bye'); } }, []..

#6.3 Recap

React.js가 멋진 이유 중에 하나는 component를 refresh 한다는 점이다. useEffect에 입력하는 두 가지 요소가 있는데, 하나는 실행 코드 그리고 다른 하나는 dependencies : react가 지켜봐야 하는 것들 그것들이 변화할 때 react.js에서 코드를 실행시킨다. 즉 두 번째 매개변수가 [] 이와 같이 빈 경우에는 React에서 지켜볼 사항이 없기 때문에 코드 실행 중에 처음으로 한 번 실행되고 만다. state가 변화할 때 component가 재실행되는 간단한 구조로 React가 작동한다. 모든 코드가 재실행 되는 것 UI의 관점에서는 새로운 데이터가 들어올 때 마다 자동으로 새로고침 되기 때문에 좋은 일이긴 하지만, 문제는 어떤 코드들은 이렇게 계속 계속 실행되면 ..

#6.2 Deps

useEffect(()=>{ console.log("SEARCH FOR", keyword); }, [keyword] ); keyword의 부분이 keyword에 onChange할 때 실행하겠다는 의미가 된다. 1. useEffect() 한 번만 실행하는 경우 useEffect(() => { console.log('only once'); }, []); 2. useEffect() 특정 요소에 변화가 있을 때만 실행 useEffect(() => { console.log('counter has changed'); }, [counter]); 3. useEffect() 두 가지 요소에서 변화가 있을 때 useEffect(() => { console.log('counter or keyword has changed')..

#6.0 Introduction

한 번만 render 하고 싶은 경우? API를 가져오는 경우 어떻게 특정 코드들이 첫번째만 RENDER하도록 나머지 state가 변경되더라도 rerender 되지 않게 하는 방법을 알아본다. ※ state가 변경될 때 모든 코드가 다시 render 된다 가끔은 이것이 괜찮지만 가끔은 component 내부 몇몇 코드는 처음 딱 한 번 실행되고 다시 실행되지 않았으면 하는 것이 있을 것이다. useEffect 코드가 한 번만 실행하도록 해준다 import { useState, useEffect } from 'react'; import Button from './Button'; import styles from './App.module.css'; function App() { const [counter, ..

#4.1 Memo

이렇게 컴포넌트에 작성되어 있는 onClick 은 이벤트 리스너가 아니라 하나의 props 이다 컴포넌트를 re-rendering하고 싶지 않을 때 사용하는 개념 "Memo" const MemorizedBtn = React.memo(Btn); function Btn({ txt, changeValue }) { return ( {txt} ); } const MemorizedBtn = React.memo(Btn); function App() { const [value, setValue] = React.useState("Save Changes"); const changeValue = () => { setValue("Revert Changes"); } return ( ); } const root = documen..

#4.0 Props

컴포넌트에 위와 같이 속성 이름과 값을 지정하면 function에서 props로 변수를 받아서 props.banana와 같이 꺼낼 수 있다 function Btn(props) { return {props.txt}; } props는 object이기 때문에 아래와 같이 바로 받을 수도 있다 function Btn({txt}) { return {txt}; } big 속성에 Boolean 값을 넣을 때는 "" 가 아닌 {} 를 이용해서 넣어주기 function Btn({ txt, big }) { return {txt} {big}; } function App() { return ( ); }

반응형