localStorage
localStorage
๋ฅผ ์ฌ์ฉํด์ ํ์ฌ ํ๊ณ ์๋ ํ๋ก์ ํธ๋ฅผ ๊ตฌ์ฑํ๊ณ ๋ง์น localStorage
๋ฅผ ์๋ฒ์ฒ๋ผ ์ฌ์ฉํ๋ ๊ฒ์ผ๋ก ๋ฐ๊ฟ๋ณผ ์๊ฐ์ด๋ค. localStorage
๋ฅผ ์ฌ์ฉํ์ง ์๊ฐ์ด ์กฐ๊ธ ์ง๋ ๊ฒ ๊ฐ์์ ๊ทธ์ ๋ํด์ ์ ๋ฆฌ๋ ํ๊ณ ์์ ๋กญ๊ฒ ์ฌ์ฉํ๋ ๊ฒ์ ๋ชฉ์ ์ผ๋ก ๋๊ณ ๊ณต๋ถํ๋ค(ํ๊ณ ์๋ ํ์ ์ ๋ฃ๋ ๊ฒ์ ๋ค!)
์คํ ๋ฆฌ์ง์๋ ๋ก์ปฌ ์คํ ๋ฆฌ์ง์ ์ธ์
์คํ ๋ฆฌ์ง๊ฐ ์๋ค.
๋ก์ปฌ ์คํ ๋ฆฌ์ง๋ ์ฌ์ฉ์๊ฐ ์ง์ฐ์ง ์๋ํ ์๊ตฌ์ ์ผ๋ก ์ ์ง๋์ง๋ง, ์ธ์
์คํ ๋ฆฌ์ง๋ ๋ธ๋ผ์ฐ์ ๋ฅผ ๋ซ์ ๊ฒฝ์ฐ ์ ๊ฑฐ๊ฐ ๋๋ค.
๋ก์ปฌ ์คํ ๋ฆฌ์ง์ ์ฌ์ฉ๋ฒ์ ์ ๋ง ๊ฐ๋จํ๋ค.
[์ ์ฅ]
localStorage.setItem(ํค,๊ฐ);
[์กฐํ]
localStorage.getItem(ํค,๊ฐ);
[์ญ์ ]
localStorage.removeItem(ํค,๊ฐ);
[์ ์ฅ์ ์ ์ฒด ์ญ์ ]
localStorage.clear();
์ฌ์ฉ๋ฒ์ ์์ ๊ฐ๋ค.
์ด๋ฅผ ๋ฐํ์ผ๋ก ํ์ฌ ํ๋ก์ ํธ์ ์ ๋ชฉ์์ผ ๋ณด๊ฒ ๋ค. ์ฌ์ค ๋ก์ปฌ์คํ ๋ฆฌ์ง๋ฅผ ์ ์ ์ฌ์ฉํ์ ๋๋ ์๋ฒ๋ก๋ถํฐ ํ ํฐ์ ๋ฐ๊ณ ๊ทธ ํ ํฐ์ ๋ก์ปฌ์คํ ๋ฆฌ์ง์ ์ ์ฅํ๊ณ ๋ก๊ทธ์ธ ์ ์ง๊ฐ ๋ ๋ ์ฌ์ฉํ์๋ค. ๊ทธ๋ฌ๋ ์ง๊ธ์ ๋ฐฑ์๋๊ฐ ์๋ ์ํ์์ ํ๋ก ํธ์๋๋ก๋ง ์์ ์ ํ๊ณ ์๋๋ฐ, redux์์๋ง ๋ชจ๋ ๊ฒ์ ๊ด๋ฆฌํ๋ ค๋ค ๋ณด๋ ์ฝ๋๊ฐ ์๋ฏธ์์ด ๊ธธ์ด์ง๋ ๊ฒ ๊ฐ๊ณ ์ ๋๋ก ๋ ์๋ฒ์ญํ ์ ํ ์ ์๋ ๊ฒ ๊ฐ์์, ๋ก์ปฌ ์คํ ๋ฆฌ์ง๋ฅผ ์ฌ์ฉํ๋ ค ํ๋ค.
์๋์ ๋ก์ปฌ์คํ ๋ฆฌ์ง๋ ์ฃผ๋ก ํค ๊ฐ์ ์์ฒ๋ผ ์ด์ฉํ์ฌ ๋จ์ผ์ ์ผ๋ก ํ์ํ ๊ฐ์ ๋ง์ด ์ฌ์ฉํ๋ค๊ณ ์๊ณ ์๋๋ฐ ๊ทธ๋ ๋ค๋ฉด ๋ฐฐ์ด์ฒ๋ผ ์ฌ์ฉ์ ํ๊ณ ์ถ๊ฐ ์ญ์ ๋ฅผ ํ๊ธฐ ์ํด์๋ ์ด๋ป๊ฒ ํด์ผ ํ ์ง๋ฅผ ๊ณ ๋ฏผ ํด๋ดค๋ค.
const onSubmitForm = useCallback(
(e) => {
e.preventDefault();
if (localStorage.data === undefined) {
localStorage.setItem("data", JSON.stringify([]));
}
let dataFile = JSON.parse(localStorage.getItem("data"));
dataFile.unshift({
User: {
id: userId,
},
Data: {
id: uuidv4(),
name: name,
tag: tag,
author: author,
explanation: explanation,
file: file,
},
});
localStorage.setItem("data", JSON.stringify(dataFile));
},
[name, author, explanation, tag, file]
);
์์ ๊ฐ์ ํ์์ผ๋ก ํ๋ฉด๋๋ค. useState๋ฅผ ์จ์๋ ํ ์ ์๊ฒ ์ง๋ง ๊ตณ์ด ๊ทธ๋ด ํ์๊น์ง๋ ์์ ๊ฒ ๊ฐ์์ ๊ฐ๋จํ๊ฒ ๋ณ์ ํ๋๋ฅผ ์ด์ฉํด์ ๋ง๋ค์๋ค.
file์๋ ์ด๋ฏธ์ง ํ์ผ์ preview ๊ฒฝ๋ก๊ฐ ๋ค์ด๊ฐ ์์ด์ localStorage.getItem์ ์ถํ์ ์ฌ์ฉํด์ ์ ์ด๋ฏธ์ง๊ฐ์ ๋ฆฌ๋์ค๋ก ๊ฐ์ ธ์ ์ ์ฅํ๊ณ ์ ์ฒด ์ ์ฅ์ ๊ฐ์ ์ด์ฉํด (์ค์ ๋ฐฑ๊ณผ ํ๋ก ํธ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ฒ๋ผ) ํ๋ฉด์์ ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ฃผ๋ ค ํ๋ค.
์์ ๋ณด๋ฉด stringify๊ฐ ์๋๋ฐ ์ด๊ฒ์ localStorage๋ string ํ์๋ง ๋ค์ด๊ฐ๊ธฐ ๋๋ฌธ์ ๊ฐ์ฒด, ๋ฐฐ์ดํ์์ด ๋ค์ด๊ฐ ์ ์์ง๋ง JSON.stringify๋ฅผ ์ด์ฉํด์ ๋ฃ์ผ๋ฉด ๋ฐฐ์ด,๊ฐ์ฒด ๊ฐ์ stringํ์์ผ๋ก ๋ณํํด์ ๋ฃ์ ์ ์๋ค. ๊ฐ์ ธ์ฌ๋๋ JSON.parse๋ฅผ ์ด์ฉํ๋ฉด ๋๋ค !