๋
ธ์
ํด๋ก ์ฝ๋ฉ ํ๋ก์ ํธ 3์ผ์ฐจ! ํฐ ์ง์ ์ ์์๋ค. ๋ฌธ์ ํธ๋ฆฌ ๊ตฌํ ์ค ๋ฒ๊ทธ๋ฅผ ๋ฐ์ํด์ ๋ง์ ์๊ฐ์ ์ก์๋จน์๊ธฐ ๋๋ฌธ์ด๋ค ใ
ใ
์๊ฐ๋ณด๋ค ๊ฐ๋จํ ๊ฒ ๊ฐ์ผ๋ฉด์๋ ์ธ์ธํ ์๋ฃ ๊ตฌ์กฐ๋ฅผ ์ํํ๋ ๊ฒ์ด ์ฝ์ง ์์๋ค.
state ๊ด๋ฆฌ์ ๋ํด์๋ ์์ง state ๊ตฌ์กฐ์ ๋ํ ํ๋ฆฝ์ด ๋์ด ์์ง ์์ ์ผ์ผํ ํ์ธํ๋ค๋ณด๋ ์๊ฐ์ด ๋ฐฐ๋ก ๊ฑธ๋ ธ๋ค.
export
๋ ํจ์๋ช
๋ฐ ๊ฐ์ฒด๋ช
์ ๊ทธ๋๋ก ์ฌ์ฉํด์ผ ํ๋๋ก ๋ด๋ณด๋ด๋ ๊ฒ์ด๊ณ default export
๋ import
์ ์ด๋ฆ์ ์์ ๋กญ๊ฒ ์ค์ ๊ฐ๋ฅํ๋ค. (๊ธฐ์กด์ as
๋ก ์ด๋ฆ์ ๋ฐ๊พธ๋ ๊ฒ์ด ์๋ ๋ฐ๋ก ๋ค๋ฅธ ์ด๋ฆ์ผ๋ก import
๊ฐ ๊ฐ๋ฅ)
๋ฐ๋ผ์ ํ ๋ชจ๋ ์์์ ์ฌ๋ฌ ๊ฐ์ง๋ฅผ export๋ฅผ ํ๋ ๊ฒฝ์ฐ์๋ export
, ํ ๋ชจ๋ ์์ exportํ๋ ๋์์ด ์ ์ผํ๋ค๋ฉด export default
๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.
์ด์ ๋
ธ์
์ฌ์ด๋ ๋ค๋น๋ฐ์ ์๋ฒ๋ก๋ถํฐ ๋ฐ์์จ ์ ์ฒด ๋ฌธ์ ํธ๋ฆฌ๋ฅผ ๊ตฌํํ๊ธฐ ์ํด ์ฌ๊ท ํจ์ makeDocTree
ํจ์๋ฅผ ๊ตฌํํ๋ค.
ํ์ง๋ง ๋ฃจํธ ๋ฌธ์๋ ์ตํ์ ๋ฌธ์๊ฐ ์๋ ์ค๊ฐ ๋ ๋ฒจ์ ๋ฌธ์๋ฅผ ์ถ๊ฐํ์ ๊ฒฝ์ฐ ํด๋น ๋ฌธ์๊ฐ ๋ ๋๋ง๋์ง ์๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
์ ์ฌ์ง์์ 102963์ ๋ฐ์ดํฐ๊ฐ ๋ ๋๋ง ๋์ง ์๋ ์ํฉ์ด์๋ค.
๋ฌธ์ ๋ ๊ฐ์ ๋์ค์์ ์ฌ๋ฌ ๊ฐ์ ๋ฃจํธ ๋ฌธ์๊ฐ ์์ ์ ์๋ ์ผ์ด์ค์๋๋ฐ ์ด ๋ ์ฒซ ๋ฒ์งธ(0๋ฒ์งธ) ๋ฌธ์๋ง ์ฌ๊ท๋ก ํ๊ณ ๋ ๊ฒ์ด ์์ธ์ด์๋ค.
๋ฐ๋ผ์ ๋ฃจํธ ๋ฌธ์์์ forEach
๋ฅผ ํตํด ์ํํ์ฌ ๋น ์ง์์ด ๋ฌธ์ ํธ๋ฆฌ๋ฅผ ๊ตฌํํ๋ค.
๊ธฐ์กด์๋ domTree๋ฅผ ๋ฌธ์์ด์ ์ถ๊ฐํด๋๊ฐ๋ ์์ผ๋ก ๊ตฌํํ์๋๋ฐ ๋ฃจํธ ๋ฌธ์ ๋ฐฐ์ด ์ํ๋ฅผ ์ํด SideNav.js
์ docList
๋ฐฐ์ด์ push
ํด๋๊ฐ๋ค.
์ดํ join
์ ํตํด ๋ฌธ์์ด๋ก ๋ณํํ์ฌ innerHTML
๋ก ๋ฌธ์ ํธ๋ฆฌ๋ฅผ ์ถ๊ฐํ๋ค.
let docList = [];
makeDocTree(this.state.docsTree, 1, docList);
const joinDoc = docList.join('');
$navDocuments.innerHTML = joinDoc;
๋ณธ๊ฒฉ์ ์ผ๋ก ์๋ฒ์์ ๋ฐ์์จ ๋ฐ์ดํฐ๋ฅผ ์๋ํฐ์ header์ textarea์ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ์ ํ๋ ์์
์ ์ํํ๋ค.
์ฌ์ด๋ ๋ค๋น๋ฐ์์ ํด๋ฆญ ์ด๋ฒคํธ๋ฅผ ํตํด ์ ํํ ๋ฌธ์์ ๋ฐ์ดํฐ(selectedDoc
)๋ฅผ ์ ์ญ ์ํ์ ์
๋ฐ์ดํธํ์๋ค. ์ ์ญ ์ํ๋ก๋ถํฐ editPage๋ก selectedDoc
์์ title
๊ณผ content
๋ฅผ ์ ๋ฌ๋ฐ์ ์ ๋ชฉ๊ณผ ๋ด์ฉ์ ํ์ํ์๋ค.
์์ฒญ ๊ฐ๋จํ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ ์์
์ด์์ง๋ง 2์๊ฐ์ ๊ผฌ๋ฐ ์ฌ์ฉํ๋ค. state ๊ฐ์ ๋ํ ์ดํด๊ฐ ๋ง์ด ๋ถ์กฑํ๊ธฐ ๋๋ฌธ์ console.log
๋ก ์ผ์ผํ ํ์ธํ๋ค๋ณด๋ ๋ง์ด ๋ฒ๋ฒ
์๋ค.
์ ๋
์ ํ์ฃผ ๋ฉํ ๋๊ณผ ์ปคํผ์ฑ์์ state ๊ด๋ฆฌ๋ฅผ ์ํด ์ปดํฌ๋ํธ ์กฐ์ง๋๋ฅผ ํตํด state ๊ฐ์ ๋ํ ์ ๋ณด๋ฅผ ์ ๋ฆฌํ ๋ชจ์๋๋ฅผ ๊ทธ๋ฆฌ๋ ๋ฐฉ์์ ์ถ์ฒ๋ฐ์๋ค.
์์ผ๋ก ์งํํ state ๊ด๋ฆฌ๋ ๋ชจ์๋๋ฅผ ๋ฌธ์ํํด์ ํด๋ณผ ์์ ์ด๋ค.
KPT ์ ์์ผ ํ๊ณ ๋ฐฉ์์ ๋์ ํด๋ณด๋ ค๊ณ ํ๋ค.
์์ง state ๊ด๋ฆฌ์ ๋ํ ์ฝ๋ ๊ตฌํ์ด ์ต์์น๊ฐ ์๋ค.
์์ผ๋ก react๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์๋ state์ ๋ํ ์ดํด๋ ํ์์ด๊ธฐ์ ์ปดํฌ๋ํธ ์กฐ์ง๋๋ฅผ ํตํด state ๊ด๋ฆฌ๋ฅผ ํด๋ด์ผ ๊ฒ ๋ค.
์ฌ๊ท ๋ก์ง ํจ์๋ฅผ ๋ฐ๋ก ๋ถ๊ธฐํ๋ค๋ณด๋ ๋ฐํ๊ฐ์ ๋ํ ์ง์ฐฉ์ด ์๊ฒจ์ undefined
๊ฐ ๋ฐํ๋๋ ์ด์๋ฅผ ๊ฒช์๋ค.
๊ตณ์ด ๋ฐํ์ ํ๊ธฐ๋ณด๋ค ์ธ๋ถ์ ๊ฒฐ๊ณผ๊ฐ์ ๋๊ณ ์ด๋ฅผ ์
๋ฐ์ดํธํ๋ ์์ผ๋ก ๊ตฌํํ๋ ๋ฐ๋ก ํด๊ฒฐ์ด ๋๋ค!
๐ ํด๋น ๋ด์ฉ์ ๊ณต๋ถํ๋ฉด์ ์ ๋ฆฌํ ๊ธ์ ๋๋ค. ํ๋ฆฐ ๋ถ๋ถ์ด๋ ์คํดํ๊ณ ์๋ ๋ถ๋ถ์ด ์๋ค๋ฉด ํผ๋๋ฐฑ ๋ถํ๋๋ฆฝ๋๋ค.
๊ด๋ จ ๋ ํผ๋ฐ์ค