useLocalStorage

ย 
LocalStorage๋Š” key์™€ value๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ์›น ์Šคํ† ๋ฆฌ์ง€ ์ž…๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž ๋„๊ตฌ๋ฅผ ์—ด์–ด โ€œ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜โ€ ํƒญ์œผ๋กœ ๋“ค์–ด๊ฐ€ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ, LocalStorage๋Š” ํ•ด๋‹น ๋ธŒ๋ผ์šฐ์ €๋ฅผ ๋‹ซ๋”๋ผ๋„ ๋ฐ์ดํ„ฐ๊ฐ€ ๊ณ„์†ํ•ด์„œ ์œ ์ง€๋˜๋Š” ํŠน์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํŠน์„ฑ์œผ๋กœ ์ธํ•ด ๋กœ๊ทธ์ธ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.
ย 
์ด๋Ÿฌํ•œ LocalStorage๋Š” react-use์˜ useLocalStorage๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ข€ ๋” ๊ฐ„ํŽธํ•˜๊ฒŒ ๊ด€๋ฆฌ ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ๊ฐ„๋‹จํ•˜๊ฒŒ useLocalStorage ์˜ ํ˜•ํƒœ์™€ ์‚ฌ์šฉ ์˜ˆ์ œ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.
ย 
const [value, setValue, removeValue] = useLocalStorage("key๊ฐ’", "๊ธฐ๋ณธ๊ฐ’");
ย 
useLocalStorage๋Š” ์œ„์™€ ๊ฐ™์ด useState์™€ ๋น„์Šทํ•œ ํ˜•ํƒœ๋ฅผ ๋„๋Š”๋ฐ ๋จผ์ € value๋Š” LocalStorage์˜ value๊ฐ’์ด ๋“ค์–ด๊ฐ€๊ณ  setValue๋Š” value๋ฅผ ๋ฐ”๊พธ์–ด์ฃผ๋Š” ์—ญํ• ์„ ํ•˜๋Š” ์ฝœ๋ฐฑํ•จ์ˆ˜์ด๋ฉฐ, removeValue๋Š” LocalStorage์— ์žˆ๋Š” ๊ฐ’์„ ๋น„์›Œ์ฃผ๋Š” ์—ญํ• ์„ ํ•˜๋Š” ์ฝœ๋ฐฑํ•จ์ˆ˜ ์ž…๋‹ˆ๋‹ค. useLocalStorage ์˜ ์ฒซ ๋ฒˆ์งธ ์ธ์ž๋Š” LocalStorage์˜ key๊ฐ’์ด ๋“ค์–ด๊ฐ€๊ณ  ๋‘ ๋ฒˆ์งธ ์ธ์ž๋Š” LocalStorage์˜ ๊ฐ’์ด ๋น„์–ด์žˆ๋‹ค๋ฉด ์ดˆ๊ธฐ๋กœ ์„ธํŒ…ํ•ด์ค„ ๊ฐ’์„ ์ ์–ด์ฃผ๋Š”๋ฐ ์ด๋Š” ์ ์–ด์ฃผ์–ด๋„ ๋˜๊ณ  ์ ์–ด์ฃผ์ง€ ์•Š์•„๋„ ๋˜๋Š” ์˜ต์…˜๊ฐ’์ž…๋‹ˆ๋‹ค.
ย 
import { useLocalStorage } from "react-use"; const App = () => { const [value, setValue, removeValue] = useLocalStorage("ํ‚ค", "๊ธฐ๋ณธ๊ฐ’"); return ( <div> <div> <h1>Value: {value}</h1> <button onClick={() => setValue("ํฌ๋„")}>value๋ฅผ ํฌ๋„๋กœ ๋ณ€๊ฒฝ</button> <br></br> <button onClick={() => setValue("๋ฐ”๋‚˜๋‚˜")}>value๋ฅผ ๋ฐ”๋‚˜๋‚˜๋กœ ๋ณ€๊ฒฝ</button> <br></br> <button onClick={() => removeValue()}>LocalStorage์˜ ๊ฐ’์„ ์‚ญ์ œ</button> <br></br> </div> </div> ); }; export default App;
useLocalStorage ํ›… ์‚ฌ์šฉ ์˜ˆ์ œ
ย 
notion imagenotion image
ย 
ย 
์˜ˆ์ œ์™€ ๊ฐ™์ด ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด ์œ„์™€ ๊ฐ™์ด ์…‹ํŒ…์ด ๋˜์–ด์ง€๋Š”๋ฐ useLocalStorage ์˜ ๋‘ ๋ฒˆ์งธ ์ธ์ž์— โ€œ๊ธฐ๋ณธ๊ฐ’โ€ ์ด๋ผ๊ณ  ์ ์–ด์ฃผ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ดˆ๊ธฐ์˜ LocalStorage์˜ ๊ฐ’์ด โ€œ๊ธฐ๋ณธ๊ฐ’โ€์œผ๋กœ ์„ค์ •๋˜์–ด ์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ value๋ฅผ ๋ฐ”๊พธ์–ด์ฃผ๊ฒŒ ๋˜๋ฉด
ย 
notion imagenotion image
ย 
์œ„์˜ ์ด๋ฏธ์ง€์™€ ๊ฐ™์ด LocalStorage์— ์žˆ๋˜ โ€œ๊ธฐ๋ณธ๊ฐ’โ€์ด ํฌ๋„๊ฐ€ ๋œ ๊ฑธ ํ™•์ธํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ด์—๋”ฐ๋ผ ํ™”๋ฉด์— ๋ Œ๋”๋ง ๋˜๋˜ โ€œ๊ธฐ๋ณธ๊ฐ’โ€์ด๋ผ๋Š” ํ…์ŠคํŠธ ๋˜ํ•œ โ€œํฌ๋„โ€๋กœ ๋ฐ”๋€ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ LocalStorage์˜ ๊ฐ’์„ ์‚ญ์ œํ•˜๋Š” ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๊ฒŒ๋˜๋ฉด
ย 
notion imagenotion image
ย 
์œ„์™€ ๊ฐ™์ด LocalStorage์˜ key์™€ value๊ฐ€ ๋ชจ๋‘ ์‚ญ์ œ๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๊ณ  ์ด์—๋”ฐ๋ผ ํ™”๋ฉด์— ๋ Œ๋”๋ง ๋˜์–ด์ง€๋Š” Value๊ฐ’ ๋˜ํ•œ ์ง€์›Œ์ง€๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ย 
์ด์ฒ˜๋Ÿผ useLocalStorage ์„ ํ™œ์šฉํ•œ๋‹ค๋ฉด LocalStorage์˜ ๊ฐ’์„ ์ถ”๊ฐ€ํ•˜๊ณ , ์‚ญ์ œํ•˜๊ณ , ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์„ ์ข€ ๋” ๊ฐ„ํŽธํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ย