๐๐ป ์ ๋ฒ์๊ฐ์ ๊ฐ๋จํ ๋ฆฌ์กํธ ์ค์น๋ฒ,๊ธฐ๋ณธ๊ฐ๋ ,State๊ฐ๋ ์ ์ตํ๋ณด์๋๋ฐ์ ์ค๋์ ์ด๋ฒคํธ๋ฆฌ์ค๋ ์ฌ์ฉ๋ฒ๊ณผ state๋ณ๊ฒฝ ํจ์ ์ฌ์ฉ๋ฒ์ ๊ณต๋ถํด ๋ณด๊ฒ ์ต๋๋ค~~
<div>
<h3> ์ถ์ฒ์ <span onClick={}>๐๐ป</span></h3>
</div>
์ ๋ฒ๊ธ์๋ ๋งํ๋ฏ์ด jsx๋ฌธ๋ฒ์ ์ฐ๋ ค๋ฉด
๊ธฐ์กด --> onClick={}
let [good,goodfx] = useState(0)
<div>
<h3> ์ถ์ฒ์ <span onClick={ ()=>{goodfx(good+1)} }>๐๐ป</span></h3>
</div>
๊ทธ๋ฐ๋ฐ!! ์ฌ๊ธฐ์ ์ฒ์์ผ๋ก state๋ฅผ ๋ด์ ๋ณ์์ ๋๋ฒ์จฐ state๋ณ๊ฒฝ ํจ์๋ฅผ ์ฌ์ฉํด ๋ณด์๋๋ฐ์ ์ด๋ ๊ฒ ์ฝ๋ฐฑํจ์ ์ฒ๋ผ ()=>{ ๋ณ๊ฒฝํจ์() } ์ด๋ ๊ฒ ๊ฐ๋จํ ์ฐ์ฐ์ด๋ ์์ ์ ์ฝ๊ฒ ํ ์ ์์ต๋๋ค
์์ ์ค๋ช ์ฒ๋ผ ๋ณ๊ฒฝํจ์๋ฅผ ์ฌ์ฉํ ์ ์๋๋ฐ ์ฌ๊ธฐ์ ์ฃผ์ํด์ผ ํ ์ ์ด์๋ค.
let [store,storefx] = useState['nike','adidas','vans']
function changeStore() {
let stores = store
// ํ๋ฆฐ๋ณต์ฌ
}
<h3>{store[0]}<button <onClick={ changeStore }>๋งค์ฅ๋ณ๊ฒฝ</button></h3>
์ด๋ฐ์์ผ๋ก onClick์ ํจ์๋ฅผ ๋ฃ์ด์ฃผ๊ณ ์ธ๋ถ์์ ํจ์๋ฅผ ๋ง๋ค์ด์ฃผ๋๋ฐ ์ฃผ์ํ ์ ์ ํจ์๋ช
๋ค์ ()์๊ดํธ๋ฅผ ๋ถํ์ง ์๋๋ค.
๊ดํธ๋ฅผ ๋ถํ๋ฉด ๋๋ฅด๊ธฐ์ ์ ๊ทธ๋ฅ ์คํ์ด ๋์ด๋ฒ๋ฆฌ๊ธฐ ๋๋ฌธ์ onClick์ด๋ฒคํธ ๋ฐ์์ ํจ์ํธ์ถ์ ํ๊ธฐ์ํด ๊ดํธ๋ฅผ ๋นผ๋๊ฒ์ด๋ค
๋ํ ์์ state์์ store์์ ๋ด์ฉ์ ๋ณต์ฌํด์ฌ๋ ๊ทธ๋ฅ ์ ๋ ๊ฒ store๋ก ๋ด๊ฒ๋๋ฉด ๊ฐ๋ณต์ฌ๊ฐ ์๋ ๊ฐ๊ณต์ ๊ฐ๋๊ณ ์๋ณธ state๋ ๋ณ๊ฒฝํ๋ฉด ์๋๊ธฐ ๋๋ฌธ์ deepcopy๋ฅผ ์ฌ์ฉํด ๋ณต์ฌ๋ณธ์ ๋ง๋ค์ด์ค์ผํ๋ค
(๊ฐ์ฒดobject๋ {...store} ์ด๋ ๊ฒ ๋ณต์ฌ๋ฅผ ํด์ค๋ค.)
let [store,storefx] = useState['nike','adidas','vans']
function changeStore() {
let stores = [...store];
stores[0] = 'Jordan';
change(stores)
}
<h3>{store[0]}<button onClick={ changeStore }>๋งค์ฅ๋ณ๊ฒฝ</button>