JavaScript Promise์ ๊ธฐ๋ฅ๊ณผ ํ์ํ ์ด์ ์ ๋ํด์ ์ค๋ช
ํด์ฃผ์ธ์. Promise๋ ๋น๋๊ธฐ์ ์ธ ์์
์ ์ฒ๋ฆฌํ ๋ ์ฌ์ฉ๋๋ ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด์
๋๋ค. Promise๋ ๋ค์๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. 1. ๋น๋๊ธฐ์ ์ธ ์์
์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. 2. ๋๊ธฐ์ ์ธ ์์
์ด ์๋ฃ๋์์ ๋, ๊ฒฐ๊ณผ๋ฅผ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. 3. ์ฌ๋ฌ ๊ฐ์ ๋น๋๊ธฐ์ ์ธ ์์
์ ์์ฐจ์ ์ผ๋ก ์คํํ ์ ์์ต๋๋ค. 4. ๋น๋๊ธฐ์ ์ธ ์์
์ด ์คํจํ์ ๋, ์๋ฌ๋ฅผ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. Promise๋ ํ์ํ ์ด์ ๋ ๋ง์ด ์์ต๋๋ค. ๋น๋๊ธฐ์ ์ธ ์์
์ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋ ์์
์ด๋ฏ๋ก, ์์
์ด ์๋ฃ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ ๋ค๋ฅธ ์์
์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์น ํ์ด์ง์์ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์ฌ๋, ์ด๋ ๊ฒ ํ๋ฉด ์น ํ์ด์ง๊ฐ ๋ฉ์ถ์ง ์๊ณ ์ฌ์ฉ์์๊ฒ ์ฆ..
์ ์ฒด ๊ธ
๐ฉ๐ป java, mysql, android, php, javascript๋ฅผ ๋ค๋ฃน๋๋คRedux store์ ์ ์ฅ๋ state๊ฐ array,object ์๋ฃ์ธ ๊ฒฝ์ฐ, state ๋ณ๊ฒฝ์ ์ข ํธ๋ฆฌํ๊ฒ ํ ์ ์๋ค ๊ทธ ๋ฐฉ๋ฒ์ ์์๋ณด์ redux state๊ฐ array/object์ธ ๊ฒฝ์ฐ ๋ณ๊ฒฝํ๋ ค๋ฉด let user = createSlice({ name : 'user', initialState : {name : 'kim', age : 20}, reducers : { changeName(state){ state.name = 'park' } } ์ง์ state๋ฅผ ์์ ํด๋ ๋ณ๊ฒฝ์ด ์ ๋ฉ๋๋ค array/object ์๋ฃ์ ๊ฒฝ์ฐ state๋ณ๊ฒฝ์ state๋ฅผ ์ง์ ์์ ํด๋ฒ๋ ค๋ ์ ๋๋๊น ์ง์ ์์ ํ์ญ์์ค. ๋ง์ฝ,๋ฒํผ์ ๋๋ ์๋ ๋ณ๊ฒฝํ๋ ค๋ ์๋ฃ์ +1์ ํด์ฃผ๊ณ ์ถ์ผ๋ฉด? let user = createSlice..
๋ฉํ์ธ์ง ์คํฐ๋๋ ๊ฐ์ ๋ณธ์ธ์ด ์ผ์ฃผ์ผ๋์ ๊ณต๋ถํ ๋ด์ฉ์ ๊ธฐ๋กํ๊ณ , ํ๊ณ ํด๋ณด๋ ์คํฐ๋์ด๋ค. ์ผ์ฃผ์ผ๋์ ๊ตฌํํ ๊ธฐ๋ฅ๋ค ๋๋ณด๊ธฐ ๋ฒํผ์ ๋๋ฅด๋ฉด 3์ด ์๋ค๊ฐ ๋ก๋ฉ์ฐฝ์ด ๋จ๊ณ , ์ํ์ด ๋จ๋ฉด ๋ก๋ฉ์ฐฝ์ด ์ง์์ง 3์ด์ด๋ด ํ ์ธ์ฟ ํฐ ๋ฉ์ธ์ง ๋ฑ์ฅํ๋ค๊ฐ 3์ดํ์ ์ฌ๋ผ์ง Detail ํ์ด์ง์ ํ๋จ ํญ ui ๋ง๋ฆ (๋ฒํผ 0 ๋๋ฅด๋ฉด ๋ด์ฉ 0๋ธ) ๋ด์ฉ0,๋ด์ฉ1,๋ด์ฉ2 ๊ฐ ๋ฐ๋ 0.5์ด ๊ฐ๊ฒฉ์ ๋๊ณ ์์ํ ๋ฑ์ฅํจ Detail ํ์ด์ง๊ฐ ์ฒ์๋ก๋ ๋ ๋ 1์ด ๊ฐ๊ฒฉ์ ๋๊ณ ๋ฑ์ฅํจ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋ ค์์ Cart ํ์ด์ง์ ๋ฐ๋ณต๋ฌธ์ผ๋ก ๋ ๋๋ง ๋ณ๊ฒฝํ๊ธฐ ๋ฒํผ์ ๋๋ฅด๋ฉด ์๋์ด +1์ฉ ์ถ๊ฐ๋จ Detail ํ์ด์ง์์ ์ฃผ๋ฌธํ๊ธฐ ๋ฒํผ์ ๋๋ฅด๋ฉด Cart์ ์ํ์ด ์ถ๊ฐ๋จ ๋ณ๊ฒฝํ๊ธฐ ๋ฒํผ์ ๋๋ฅด๋ฉด ์๋์ด +1์ฉ ์ถ๊ฐ๋จ ํ์ผํ
์ ํ๊ธฐ ์ด๋ ค์ ๋ค (1) ๋ฐฐ์ด์ ๊ธฐ์ค์ผ๋ก, 0๋ฒ์งธ..
Redux ์ state๋ฅผ ๋ณ๊ฒฝํ๊ณ ์ถ๋ค๊ณ ์? ๊ทธ๋ฌ๋ฉด 3๊ฐ์ง ๋จ๊ณ๋ฅผ ๋ฐ๋ฅด์ธ์ store.js ์ state ๋ณ๊ฒฝํด์ฃผ๋ ํจ์๋ถํฐ ๋ง๋ค๊ณ ๊ทธ ํจ์๋ฅผ export ํด๋๊ณ ํ์ํ ๋ import ํด์ dispatch()๋ก ๊ฐ์ธ์ ํธ์ถํจ 1. store.js์ state ๋ณ๊ฒฝํด์ฃผ๋ ํจ์๋ถํฐ ๋ง๋ค์ด์ import { configureStore, createSlice } from '@reduxjs/toolkit' //reducer ๋ค์๋ state ๋ณ๊ฒฝํจ์๋ฅผ ๋ฃ๋๋ค let user = createSlice({ name: 'user', initialState: 'kim', reducers: { //reducers์ฆ ๋๋ค. changeName(state){ // ํ๋ผ๋ฏธํฐ state๋ ๊ธฐ์กดstate๋ฅผ ๋ปํจ return 'J..
Redux-toolkit๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ ์? props ์์ด๋ ์ปดํฌ๋ํธ๊ฐ state ๊ณต์ ๊ฐ ๊ฐ๋ฅํด์ง ,, ๋ฑ ์ปดํฌ๋ํธ๋ค์ด redux store.js ์์ state๋ค์ ๊ฐ์ ธ๋ค ์ธ ์ ์์ Redux store์ state ๋ณด๊ดํ๋ ๋ฒ ํฌ๊ฒ ๋๊ฐ์ง๋ก ๋๋ฉ๋๋ค 1. ๋จผ์ , createSlice() ๋ก state๋ฅผ ๋ง๋ค๊ณ 2. ์๋์ configureStore()์ ๋ฑ๋กํ๋ฉด ๋ฉ๋๋ค import { configureStore, createSlice } from '@reduxjs/toolkit' //์ฌ๊ธฐ์ state๋ฅผ ๋ง๋ค๊ฑฐ์ //createSlice๋ useState์ ๋น์ทํ ์ญํ ์. state ์์ฑ // state ํ๋๋ฅผ slice ๋ผ๊ณ ๋ถ๋ฆ //initialState ๋ค์๋ ์ด๊ธฐ๊ฐ state๋ฅผ ๋ฃ์ let u..
์ค์ค๋ฅต ๋์ค๋ ์ ๋๋ฉ์ด์
์ ๋ง๋ค๊ณ ์ถ๋ค๋ฉด? ์ ๋๋ฉ์ด์
๋์์ ์คํ์ผ์ ๋ด์ className์ ๋ง๋ค๊ธฐ ์ ๋๋ฉ์ด์
๋์ํ ์คํ์ผ์ ๋ด์ className์ ๋ง๋ค๊ธฐ transition ์์ฑ๋ ์ถ๊ฐ ์ฒ์์๋ ๋ผ์๋ค๊ฐ ๋ถ์ด๊ธฐ ์ด ์์์ ๋ฐ๋ผ์ ์ ๋ฒ ๊ฒ์๋ฌผ์์ ๋ง๋ค์๋ ํญ์ ๋ด์ฉ์ด ์์ํ ๋ฑ์ฅํ๋ fade in ์ ๋๋ฉ์ด์
์ ๋ง๋ค์ด๋ณด๊ฒ์ ๋จผ์ , ์ ๋๋ฉ์ด์
๋์์ ํ ์คํ์ผ์ ๋ด์ className์ ๋ง๋ค๊ณ , transition ์์ฑ๋ ์ถ๊ฐํด๋ณผ๊ฒ์ (cssํ์ผ) .start{ opacity:0; /* ์๋ณด์ */ } .end{ opacity:1; /* ๋ณด์ */ transition: opacity 0.5s; /* ์ฒ์ฒํ ๋ณด์ */ } ๋ค์์ผ๋ก '๋ฒํผ์ ๋๋ฅผ๋๋ง๋ค end๋ฅผ ๋ถ์ฐฉํด์ฃผ์ธ์~!' useEffect๋ฅผ ์จ์ st..
๋์ ์ธ UI ๋ง๋๋ ๋ฐฉ๋ฒ 1. html, css ๋ก ๋ฏธ๋ฆฌ ๋์์ธ ์์ฑํด๋๊ณ 2. UI์ ํ์ฌ์ํ๋ฅผ ์ ์ฅํ state ํ๋ ๋ง๋ค๊ณ 3. state์ ๋ฐ๋ผ์ UI๊ฐ ์ด๋ป๊ฒ ๋ณด์ผ์ง ์์ฑํ๊ธฐ ๋จผ์ , ๋ฒํผ0 ๋ฒํผ1 ๋ฒํผ2 ๋ด์ฉ0 ๋ด์ฉ1 ๋ด์ฉ2 ๋์์ธํ๊ธฐ ๊ท์ฐฎ์์ ๋ฒํผ์ react-bootstrap ์ฌ์ดํธ์์ ๋ณต์ฌํจ ๋๋ฒ์งธ๋ก, UI์ ํ์ฌ์ํ๋ฅผ ์ ์ฅํ state๋ฅผ ๋ง๋ค๊ธฐ function Detail(){ let [tab, setTab] = useState(0) (์๋ต) } ํญ ui์ ์ํ๋ 0๋ฒ ๋ด์ฉ์ด ๋ณด์ด๊ฑฐ๋/ 1๋ฒ๋ด์ฉ์ด ๋ณด์ด๊ฑฐ๋/ 2๋ฒ๋ด์ฉ์ด ๋ณด์ด๊ฑฐ๋ ์
์คํ๋์ด๊ธฐ ๋๋ฌธ์ ๊ทธ๋๊ทธ๋๋ง๋ค setTab()์ผ๋ก state๋ฅผ ๋ณ๊ฒฝํด์ฃผ๋ฉด ๋ ๋ฏ ๋ง์ง๋ง์ผ๋ก, state์ ๋ฐ๋ผ์ ui๊ฐ ์ด๋ป๊ฒ ๋ฌ๋ผ ๋ณด์ผ์ง ์์ฑ function D..
์ต๊ทผ๋ค์ด ํ๋ก์ ํธ๋ฅผ ํ๋ค๋ณด๋ฉด ์์ํ ์ค๋ฅ๊ฐ ๋ง์ด ๋๋ค. ์์ํ๋ค๊ณ ๋ฌด์ํ๋ฉด ์๋๋๊ฒ, ์ฝ๋ ํ์ค๋ง ์ ๋ชป์จ๋ ๋ ๋๋ง์ด ์๋์ ํ๋ฉด์ด ํฐ๋ฐํ์ด ๋๋ค. ๋ด๊ฐ ์ ์ด๋ ๊ฒ ์ค๋ฅ๊ฐ ๋ง์ด ๋ ๊น? ์๊ฐํด๋ณด๋ ๋๋ ์ฐธ ๋์ ์ต๊ด์ ๊ฐ์ง๊ณ ์์๋ค. ๊ทธ๋์, ๋์ ์ต๊ด์ ๊ณ ์น๊ธฐ ์ํ ๊ฐ๋ ฅํ ํด๊ฒฐ๋ฐฉ๋ฒ์ด ํ์ํ๋ค. ๋ ์ค๋๋ถํฐ ํ๋ก์ ํธ๋ฅผ ํ๋ฉด์ ์ค๋ฅ๋ฅผ ๋ง์ฃผ์น๋ฉด, ๊ทธ ์ค๋ฅ์ ์์ธ์ ํ์
ํ๊ณ , ํด๊ฒฐํ๋ ๊ทธ ๊ณผ์ ์ ๋ชจ๋ ๋ธ๋ก๊ทธ์ ์ ๊ธฐ๋ก ํ๋ค. ์ด๋ค ์ค๋ฅ๋ 1์๊ฐ, ์ด๋ค ์ค๋ฅ๋ 2์ผ์ด๋ ๊ฑธ๋ ค ํด๊ฒฐํ๊ธฐ๋ ํ์ง๋ง, ๊ฒฐ๋ก ์ ์ผ๋ก๋ ๋ฌธ์ ์์ธ์ด ๋ฌด์์ด์๊ณ , ์ด๋ป๊ฒ ํด๊ฒฐํ๋์ง๊ฐ ์ค์ํ๋ค๊ณ ์๊ฐํ๋ค. ๋ฌธ์ ๋ฅผ ์ฐจ๊ทผ์ฐจ๊ทผ ํด๊ฒฐํด๋๊ฐ๋ค๋ฉด, ์์ผ๋ก ๋ง์ฃผํ ๋ฌธ์ ์ ๊ฒฝ์ฐ์๋ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ด ์ค์ด๋ค ๊ฒ์ด๋ค. 1. ์์ด๋ก ๋ ์๋ฌ์ฝ๋๋ฅผ ์ฝ๊ณ , ์ง๊ด์ ์ผ๋ก ํด์ํ๋ค...