๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

FE-kit JavaScript

[FE ์Šคํ„ฐ๋””] Mission 3 ์ฝ”๋“œ ๋ฆฌ๋ทฐ

โ— ๋ณ€๊ฒฝ ์ „

//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