์ค๋์ ๋ญ ํด๋ณผ๊ฑฐ๋๋ฉด JSON.stringify์ JSON.parse์ ๋ํด์ ๊ฐ๋จํ ์์๋ณด๊ณ , localStorage ์ ์ต๊ทผ ๋ณธ ์ํ์ id๋ฅผ ๋ฐฐ์ด๋ก ๋ด์๋ณด๋ ๊ธฐ๋ฅ์ ๋ง๋ค์ด๋ณด๊ฒ ์ด๋ค JSON.stringify ์ JSON.parse ์ฌ๊ธฐ ํ ๊ฐ์ฒด๊ฐ ์์ต๋๋ค let obj = {name: 'kim'} ๋ง์ฝ ์ด ์ํ๋ก localStorage.setItem('data', obj) ํด๋ฒ๋ฆฐ๋ค๋ฉด ์์ {name: 'kim'} ์ ์ํ๋ก ์ ์ฅ์ด ๋์ง ์๊ณ , localStorage์ value์ [object Object] ๋ผ๋ฉฐ ๊ฐ์ฒด๊ฐ ๊นจ์ ธ์ ๋์ฌ๊ฒ๋๋ค ๊นจ์ ธ์ ์๋์ค๊ณ ์ด์ ์ํ๋ก obj๋ฅผ ๋ณด์กดํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผํ ๊น? JSON.stringify๋ก obj๋ฅผ ๊ฐ์ธ๋ฉด ๋ฉ๋๋ค! ๊ทธ๋ ๋ค๋ฉด ๋ฐ๋๋ก JSON ํ์์ ๊ธฐ์กด ๊ฐ์ฒด ํ..
์ฝ๋ฉ์ ํ
์ค๋ ฅํฅ์ ์์ฉ๋ฌธ์ ๋ค : ์์ฉ1. ํ์ ํ๋ง๋ค ์ญ์ ๋ฒํผ ๋ง๋ค๊ณ ๊ทธ๊ฑฐ ๋๋ฅด๋ฉด ์ํ์ด ์ญ์ ๋๊ฒ ๋ง๋ค๋ ค๋ฉด? ์์ฉ2. ์ฃผ๋ฌธํ๊ธฐ ๋ฒํผ ๋๋ฅผ ๋ ์ด๋ฏธ ์ํ์ด state์์ ์์ผ๋ฉด ์ถ๊ฐ๊ฐ ์๋๋ผ ๊ธฐ์กด ํญ๋ชฉ ์๋์ฆ๊ฐ๋ง? ์์ฉ1. ํ์ ํ๋ง๋ค ์ญ์ ๋ฒํผ ๋ง๋ค๊ณ ๊ทธ๊ฑฐ ๋๋ฅด๋ฉด ์ํ์ด ์ญ์ ๋๊ฒ ๋ง๋ค๋ ค๋ฉด? (Cart.js) # ์ํ๋ช
์๋ ๋ณ๊ฒฝํ๊ธฐ ์ญ์ ํ๊ธฐ {/*๋ฐ์ดํฐ ๊ฐฏ์์ ๋ง๊ฒ ํ ์์ฑํด๋ฌ๋ผ๊ณ ๋ฐ๋ณต๋ฌธ์ฐ๋ ๊ฒ๋ ์ข์๋ฏ์*/} {/*map์ผ๋ก html ์์ฑํ ๋ ์ผ๋จ {}๋ถํฐ ์ด๋ค */} { carts.map((item,i)=>{ return ( {carts[i].id} {carts[i].name} {carts[i].count} { dispatch((changeCount(carts[i].id))) }}>โ {/*๋ฒํผ์ ๋๋ฅด๋ฉด ์ํ์ด..
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..
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..
3๊ฐ์ง ๋ฌธ์ ๋ฅผ ํ์ด๋ณด์๋ค. ์์ฉ1, ๋ฒํผ 2๋ฒ ๋๋ฅด๋ฉด 7,8,9 ์ํ ๊ฐ์ ธ์์ ๋ณด์ฌ์ฃผ๋ ค๋ฉด? - count ๋ผ๋ state๋ฅผ ์ฌ์ฉํ๋ค. - axios.get ์์ฒญ ํ๋ ๋ถ๋ถ์ด ๊ธธ์ด์ getMoreShoes ๋ผ๋ ํจ์๋ฅผ ์์ ์ ์ธํ์ฌ ๊ฐ์ ธ๋ค ์ผ๋ค. ํจ์๋ฅผ ์ ์ธํ๋ ์์น๊ฐ ์ค์ํ๋ค๊ณ ๋๋๋ค. ์๋์ app ์๋์์ ์ ์ธํ์๋๋ ๊ฐ์ข
state๋ค์ด undefined ๋ก ์๋ฌ๊ฐ ๋ด๋ค. ์์ฉ2. ๋ฒํผ์ 3๋ฒ ๋๋ฅด๋ฉด ๋ ์ํ์ด ์๋ค๊ณ ์๋ด๋ฌธ์ ๋์ฐ๋ ค๋ฉด? let [count, setCount] = useState(0); ํด์ฃผ๊ณ ํด๋ฆญ์ด๋ฒคํธ ๋ฐ์์ setCount ํ๋์ฉ ์ฆ๊ฐํด์ฃผ๊ณ count๊ฐ 1์ผ๋ data2, count 2์ผ๋ data3, count 3์ผ๋ alert์ฐฝ ๋์์ค ์์ฉ3, ๋ฒํผ ๋๋ฅธ ์งํ์ ๋ก๋ฉ์ค ๊ธ์๋ฅผ ..