[JS][ํ”„๋กœ์ ํŠธ] ๐ŸŽฌ์˜ํ™” ๊ฒ€์ƒ‰ UI(6) - ๋ฌธ์ œ ์ƒํ™ฉ ํ•ด๊ฒฐ, header component ๊ตฌํ˜„

์šฐ์—ฅยท2024๋…„ 5์›” 3์ผ

๋ฌธ์ œ ์ƒํ™ฉ ํ•ด๊ฒฐ

ย  index.html์„ ์‹คํ–‰ํ•  ์‹œ ํ•ญ์ƒ API๋ฅผ ์ƒˆ๋กœ ๋ฐ›์•„์™€์„œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜์ง€ ์•Š๊ณ  ๊ณ„์† ์ดˆ๊ธฐํ™”๋˜๋Š” ํ˜„์ƒ์ด ๋ฐœ์ƒํ–ˆ๋‹ค.

// ์ด๋ฏธ ๋ถˆ๋Ÿฌ์™”๋˜ ์˜ํ™” ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์œผ๋ฉด ์•ˆ ๋ถˆ๋Ÿฌ์˜ค๋„๋ก
if (JSON.parse(localStorage.getItem("movies")) === null) {
  console.log("----์˜ํ™” ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์˜ต๋‹ˆ๋‹ค----");
  callGetMoviesAPI();
} else if (searchMovies === null) {
  const filteredMovieData = movies.map((movie) => JSON.parse(localStorage.getItem(movie)));
  displayMovieData(filteredMovieData);
} else {
  // ๊ฒ€์ƒ‰ ์ค‘์ธ text๊ฐ€ ์žˆ์œผ๋ฉด ํ•ด๋‹น text๊ฐ€ title์— ํฌํ•จ๋˜์–ด ์žˆ๋Š” ์˜ํ™”๋งŒ ๋‚˜์—ด
  let contentMovie = search_movie(searchMovies);
  displayMovieData(contentMovie);
}

ย  ์กฐ๊ฑด๋ฌธ์„ ํ™œ์šฉํ•˜์—ฌ ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€์— ์˜ํ™” ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ API๋ฅผ ๋ฐ›์•„์˜ค์ง€ ์•Š๋„๋ก ์ˆ˜์ •ํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์˜€๋‹ค.

ย 

header component ๊ตฌํ˜„

ย  ๋ฉ”์ธํŽ˜์ด์ง€, ์ƒ์„ธํŽ˜์ด์ง€์—์„œ ๋™์ผํ•œ ๋””์ž์ธ์œผ๋กœ ๋™์ผํ•œ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์š”์†Œ์ธ ํ—ค๋”๋ฅผ ์›น ์ปดํฌ๋„ŒํŠธ๋กœ ๋”ฐ๋กœ ๊ตฌํ˜„์„ ํ•ด๋ดค๋‹ค. ๋ฐ”๋‹๋ผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“ค์–ด์„œ ์‚ฌ์šฉํ•ด๋ณด๋Š” ๊ฒƒ์€ ์ฒ˜์Œ์ด๋ผ ์ข€ ํ—ค๋งธ์ง€๋งŒ, ๋งŒ๋“ค์–ด ๋†“๊ณ  ๋‚˜๋‹ˆ ๊ฒ€์ƒ‰ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ๊ฐ€ ํ›จ์”ฌ ์‰ฌ์›Œ์ ธ์„œ ์ข‹์•˜๋‹ค.

class HeaderComponent extends HTMLElement {
  connectedCallback() {
    // Add your HTML template
    this.innerHTML = `
      <nav class="menubar-top">
        <img id="representive-mark" src="style/image/icon.png" />
        <form class="search-div" id="search_form">
          <input type="text" placeholder="search..." id="searchText" autofocus />
          <img src="style/image/search_icon.png" class="icon-search" id="handleSearch" alt="๊ฒ€์ƒ‰ ์•„์ด์ฝ˜" />
        </form>
      </nav>
    `;

    // Add your event listeners
    this.setEventReset();
    this.setEventSearch();
  }  
}

customElements.define("movie-header", HeaderComponent);
profile
๐ŸŒธ๐Ÿ˜Š๐ŸŒธ

0๊ฐœ์˜ ๋Œ“๊ธ€