ํ•„์ˆ˜ ๊ตฌํ˜„ ์‚ฌํ•ญ

html

  • <div id="todo-list"></div> ์™ธ์˜ ๋‹ค๋ฅธ div๋ฅผ ๋‘ ๊ฐœ ๋” html ์ฝ”๋“œ์— ๋งŒ๋“ญ๋‹ˆ๋‹ค.

  • div์˜ id๋Š” ์ ๋‹นํ•œ ์ด๋ฆ„์œผ๋กœ ์ง€์–ด์ฃผ์„ธ์š”.

js

  • const data = [{ ... }] ์™ธ์— todo๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” array data๋ฅผ ๋‘ ๊ฐœ ๋” ๋งŒ๋“ญ๋‹ˆ๋‹ค.

  • todo์˜ ๋‚ด์šฉ์€ ๋ณธ์ธ์˜ ํ˜„์žฌ todo๋ฅผ ๋‹ด์•„์„œ ๋„ฃ์œผ๋ฉด ๋” ์ข‹๊ฒ ์ฃ ?

  • TodoList ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ด ์„ธ ๊ฐœ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ์ปดํฌ๋„ŒํŠธ์—๋Š” ์ œ๊ฐ€ ๋„ฃ์–ด๋‘” data์™€ #todo-list์— ๋ Œ๋”๋งํ•˜๊ณ ,
    ๋‚˜๋จธ์ง€ ๋‘ ๊ฐœ๋Š” ์—ฌ๋Ÿฌ๋ถ„์ด ์ถ”๊ฐ€ํ•˜์‹  div + data๋ฅผ ํ™œ์šฉํ•ด์„œ ๋งŒ๋“ค์–ด์ฃผ์„ธ์š”.

์†Œ์Šค์ฝ”๋“œ

html

<div id="todo-list"></div>
<div id="todo-worship"></div>
<div id="todo-workout"></div>

js

const todo_study = [
  {
    text: 'HTML',
  },
  {
    text: 'Css',
  },
  {
    text: 'Javascript',
  },
];

const todo_worship = [
  {
    text: '์ฝ˜ํ‹ฐ ์ •ํ•˜๊ธฐ',
  },

  {
    text: '์ฝ˜ํ‹ฐ key ์ˆ˜์ •ํ•˜๊ธฐ',
  },
];

const todo_workout = [
  {
    text: '์›จ์ดํŠธ ์šด๋™ํ•˜๊ธฐ',
  },

  {
    text: '์œ ์‚ฐ์†Œ ์šด๋™ํ•˜๊ธฐ',
  },
];

function TodoList(data, id) {
  /* ์ธ์Šคํ„ด์Šค ํ™•์ธ */
  if (!new.target) {
    throw new Error('is not instance');
  }

  if (!data) {
    throw new Error('check Null or Undefined');
  }

  this.render = function () {
    data.forEach((item) => {
      document.querySelector(
        `${id}`,
      ).innerHTML += `<div> ์˜ค๋Š˜์˜ ํ•  ์ผ์€ ${item.text} ์ž…๋‹ˆ๋‹ค!!</div>`;
    });
  };
}

const study = new TodoList(todo_study, '#todo-list');
const worship = new TodoList(todo_worship, '#todo-worship');
const workout = new TodoList(todo_workout, '#todo-workout');

study.render();
worship.render();
workout.render();

TodoList์— id ๋งค๊ฐœ๋ณ€์ˆ˜ ์ถ”๊ฐ€

  • ํ•จ์ˆ˜์— id ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•ด์„œ document.querySelector๋ฅผ ํ†ตํ•ด ํ•ด๋‹น id ๊ฐ’์„ ๊ฐ€์ง„ divํƒœ๊ทธ์— ์ ‘๊ทผํ•œ๋‹ค.
  • ๊ฐ ์ปดํฌ๋„ŒํŠธ์— ํ•ด๋‹น๋˜๋Š” data๊ฐ€ ์ถœ๋ ฅ์ด ๋˜๋Š”๊ฑธ ๋ณผ ์ˆ˜ ์žˆ๋‹ค

๊ฒฐ๊ณผ

๊ฒฐ๊ณผ3