Proyek: Todo App — Vue

Bangun Todo App dengan Vue! Gabungkan semua konsep yang sudah dipelajari: const todos = ref([]) const input = ref("") const addTodo = () => { if (input.value.tr

Bangun Todo App dengan Vue!

Gabungkan semua konsep yang sudah dipelajari:

const todos = ref([])
const input = ref("")

const addTodo = () => {
  if (input.value.trim()) {
    todos.value.push({
      id: Date.now(),
      text: input.value.trim(),
      done: false,
    })
    input.value = ""
  }
}

const toggleTodo = (id) => {
  const todo = todos.value.find(t => t.id === id)
  if (todo) todo.done = !todo.done
}

const deleteTodo = (id) => {
  todos.value = todos.value.filter(t => t.id !== id)
}

---template---
<div>
  <input v-model="input" id="todo-input" />
  <button @click="addTodo" id="add-btn">Tambah</button>
  <ul id="todo-list">
    <li v-for="todo in todos" :key="todo.id">
      <span
        :style="{ textDecoration: todo.done ? 'line-through' : 'none' }"
        @click="toggleTodo(todo.id)"
      >{{ todo.text }}</span>
      <button @click="deleteTodo(todo.id)">×</button>
    </li>
  </ul>
</div>

Selamat! Kamu sudah menguasai dasar-dasar Vue.

Yang akan kamu pelajari