iPod Video White

๐Ÿ““ TIL

[220821] useEffect

k_m_jin 2022. 8. 21. 21:31

styled-components

css๊ฐ€ ์ปดํฌ๋„ŒํŠธ์— ์ข…์† ๋˜๊ฒŒ๋”

 ์ปดํฌ๋„ŒํŠธ.module.css

props๋กœ ๋ฐฐ๊ฒฝ์ƒ‰ ๋ฐ”๊พธ๊ธฐ

import styled from 'styled-components';

let YellowBtn = styled.button`
  background : ${ props => props.bg };
  color : black;
  padding : 10px;
`;

function Detail(){
  return (
    <div>
        <YellowBtn bg="orange">์˜ค๋ Œ์ง€์ƒ‰ ๋ฒ„ํŠผ์ž„</YellowBtn>
        <YellowBtn bg="blue">ํŒŒ๋ž€์ƒ‰ ๋ฒ„ํŠผ์ž„</YellowBtn>
    </div>
  )
}

 

 

 

 

 

useEffect

html์ด ๋ Œ๋”๋ง ๋œ ๋‹ค์Œ ์‹คํ–‰๋Œ

1. ์ด๋Ÿฌ๋ฉด ์žฌ๋ Œ๋”๋ง๋งˆ๋‹ค ์ฝ”๋“œ๋ฅผ ์‹คํ–‰๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

useEffect(()=>{ ์‹คํ–‰ํ• ์ฝ”๋“œ })

2. ์ด๋Ÿฌ๋ฉด ์ปดํฌ๋„ŒํŠธ mount์‹œ (๋กœ๋“œ์‹œ) 1ํšŒ๋งŒ ์‹คํ–‰๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

useEffect(()=>{ ์‹คํ–‰ํ• ์ฝ”๋“œ }, [])

3. ์ด๋Ÿฌ๋ฉด useEffect ์•ˆ์˜ ์ฝ”๋“œ ์‹คํ–‰ ์ „์— ํ•ญ์ƒ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. 

useEffect(()=>{ 
  return ()=>{
    ์‹คํ–‰ํ• ์ฝ”๋“œ
  }
})

4. ์ด๋Ÿฌ๋ฉด ์ปดํฌ๋„ŒํŠธ unmount์‹œ 1ํšŒ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

useEffect(()=>{ 
  return ()=>{
    ์‹คํ–‰ํ• ์ฝ”๋“œ
  }
}, [])

5. ์ด๋Ÿฌ๋ฉด state1์ด ๋ณ€๊ฒฝ๋  ๋•Œ๋งŒ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. 

useEffect(()=>{ 
  ์‹คํ–‰ํ• ์ฝ”๋“œ
}, [state1])

function TabContent(props){
  return [ <div>๋‚ด์šฉ0</div>, <div>๋‚ด์šฉ1</div>, <div>๋‚ด์šฉ2</div> ][props.ํƒญ]
}

 

์™œ๋ƒ๋ฉด props.ํƒญ์ด 0์ด๋ฉด ์ € ๊ธด array์ž๋ฃŒ์—์„œ 0๋ฒˆ ์ž๋ฃŒ๋ฅผ ๊บผ๋‚ด์ค„ํ…Œ๋‹ˆ๊นŒ์š”. 

๋ฐ˜์‘ํ˜•

'๐Ÿ““ TIL' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[JS] ๋ฌธ์ž์—ด์„ ๋ฐฐ์—ด๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ  (0) 2024.02.05
[220830] jsx if๋ฌธ array,object  (2) 2022.08.30
[220807]nwitter  (0) 2022.08.07
[220804] React Redux  (0) 2022.08.04
[220731] React useMemo , useReducer  (0) 2022.07.31