โ ๋ณ๊ฒฝ ์
//main.js
isRoot: false,
node: [],
depth: [],
selectedFile: [],
๐ํผ๋๋ฐฑ ๋ด์ฉ
selectedFile์ด ๊ฒฐ๊ตญ ์ฌ์ฉ๋๋ ๊ฒ์ array๊ฐ ์๋๋ฐ ์ด๊ธฐ ๊ฐ์ด array๋ก ์ค์ ๋์ด ์์ด์ ์ด์ํ ๊ฒ ๊ฐ๋ค.
๐ป๋ณ๊ฒฝ ํ
//main.js
isRoot: false,
node: [],
depth: [],
selectedFile,
โ ๋ณ๊ฒฝ ์
//src/Components/App.js
//...
if (prevNodeId === null) {
//๋ฃจํธ ๋
ธ๋๋ก ๋์์จ ๊ฒฝ์ฐ
this.loading.setState({ isLoading: true });
const rootNode = await fetchAPI.fetchRoot();
this.loading.setState({ isLoading: false });
this.setState({
...copyState,
node: rootNode,
isRoot: true,
});
} else {
this.loading.setState({ isLoading: true });
const prevNodeData = await fetchAPI.getByDirectoryID(prevNodeId);
this.loading.setState({ isLoading: false });
this.setState({
...copyState,
node: prevNodeData,
isRoot: false,
});
}
๐ํผ๋๋ฐฑ ๋ด์ฉ
early return ํจํด ์ฌ์ฉ !
nesting๋ ์ค์ด๋ค๊ณ ๊ฐ๋
์ฑ์๋ ๋์์ด ๋ ๊ฒ.
๐ป๋ณ๊ฒฝ ํ
//src/Components/App.js
//...
if (prevNodeId === null) {
//๋ฃจํธ ๋
ธ๋๋ก ๋์์จ ๊ฒฝ์ฐ
this.loading.setState({ isLoading: true });
const rootNode = await fetchAPI.fetchRoot();
this.loading.setState({ isLoading: false });
this.setState({
...copyState,
node: rootNode,
isRoot: true,
});
return;
}
this.loading.setState({ isLoading: true });
const prevNodeData = await fetchAPI.getByDirectoryID(prevNodeId);
this.loading.setState({ isLoading: false });
this.setState({
...copyState,
node: prevNodeData,
isRoot: false,
});
โ ๋ณ๊ฒฝ ์
this.$element.className = "ImageViewer";
this.$target.appendChild(this.$element);
this.renderComponent();
this.onclick = props.onclick;
๐ํผ๋๋ฐฑ ๋ด์ฉ
JS์์๋ camelCase๋ฅผ ์ฐ๋๊ฒ์ด ๋ ์์ฐ์ค๋ฌ์ ๋ณด์ผ ๊ฒ ๊ฐ๋ค.
์ฌ์ํ์ง๋ง ์ค์ํ ์ ์ด๋ค.
๐ป๋ณ๊ฒฝ ํ
this.$element.className = "ImageViewer";
this.$target.appendChild(this.$element);
this.renderComponent();
this.onclick = props.onclick;
โ ๋ณ๊ฒฝ ์
<div>${selectedFile.name}</div>
</div>`;
this.$element.style.display = selectedFile.isVisible ? "block" : "none";
this.closeImg();
๐ํผ๋๋ฐฑ ๋ด์ฉ
ํจ์๋ช ๊ณผ ์ค์ ํ๋์ผ์ ๋งค์นํด์ ๊ตฌ์ฒด์ ์ผ๋ก ์์ฑํด์ฃผ์ด์ผ ๋ณด๊ธฐ์ ํธํ๊ณ ํท๊ฐ๋ฆฌ์ง ์๋๋ค.
๐ป๋ณ๊ฒฝ ํ
<div>${selectedFile.name}</div>
</div>`;
this.$element.style.display = selectedFile.isVisible ? "block" : "none";
this.addEventToImageModal();
โ ๋ณ๊ฒฝ ์
<div>${selectedFile.name}</div>
</div>`;
this.$element.style.display = selectedFile.isVisible ? "block" : "none";
this.closeImg();
๐ํผ๋๋ฐฑ ๋ด์ฉ
ํจ์๋ช ๊ณผ ์ค์ ํ๋์ผ์ ๋งค์นํด์ ๊ตฌ์ฒด์ ์ผ๋ก ์์ฑํด์ฃผ์ด์ผ ๋ณด๊ธฐ์ ํธํ๊ณ ํท๊ฐ๋ฆฌ์ง ์๋๋ค.
๐ป๋ณ๊ฒฝ ํ
<div>${selectedFile.name}</div>
</div>`;
this.$element.style.display = selectedFile.isVisible ? "block" : "none";
this.addEventToImageModal();
โ ๋ณ๊ฒฝ ์
const request = async (url) => {
const result = await fetch(url);
switch (result.status) {
case 200:
๐ํผ๋๋ฐฑ ๋ด์ฉ
์ข ์ค์ํ ๋ด์ฉ์
๋๋ค.
200๋ง ์ฑ๊ณต์ด ์๋๋ผ 2xx๊ฐ ์ฑ๊ณต์ด๋ผ์ ๊ทธ์ ๋ง๊ฒ ๋๋ result.ok๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
๐ป๋ณ๊ฒฝ ํ
const request = async (url) => {
const result = await fetch(url);
if(result.ok){
'FE-kit JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [FE ์คํฐ๋] ๋ฆฌ๋ทฐ (0) | 2021.08.23 |
|---|---|
| [FE ์คํฐ๋] Week #3 (0) | 2021.08.23 |
| [FE ์คํฐ๋] Week #2 (0) | 2021.08.23 |
| [FE ์คํฐ๋] mission 1 ์ฝ๋ ๋ฆฌ๋ทฐ (0) | 2021.08.01 |
| [FE ์คํฐ๋] Week #1 (0) | 2021.07.30 |