ساخت Todo App بدون فریمورک با جاوااسکریپت
مقدمه
اپلیکیشن Todo یکی از سادهترین و پرکاربردترین پروژهها برای یادگیری برنامهنویسی فرانتاند است. در این مقاله، با استفاده از HTML، CSS و JavaScript خالص (Vanilla JS)، یک Todo App بدون هیچ فریمورکی خواهیم ساخت تا مفاهیم پایهای DOM، مدیریت رویدادها و تعامل با کاربر را بهتر درک کنیم.
ساختار HTML
ابتدا ساختار اولیه HTML را ایجاد میکنیم. این شامل یک ورودی برای اضافه کردن وظیفه جدید، یک دکمه برای ثبت، و یک لیست برای نمایش وظایف است.
<!DOCTYPE html>
<html lang="fa">
<head>
<meta charset="UTF-8">
<title>Todo App</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="container">
<h1>Todo App</h1>
<input type="text" id="todo-input" placeholder="افزودن کار جدید...">
<button id="add-btn">افزودن</button>
<ul id="todo-list"></ul>
</div>
<script src="script.js"></script>
</body>
</html>
استایلدهی با CSS
برای زیباتر کردن ظاهر برنامه، استایلهای سادهای اضافه میکنیم.
body {
font-family: Tahoma, sans-serif;
background-color: #f0f0f0;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
margin: 0;
}
.container {
background: white;
padding: 2rem;
border-radius: 10px;
box-shadow: 0 0 10px rgba(0,0,0,0.1);
width: 300px;
}
input {
width: 100%;
padding: 0.5rem;
margin-bottom: 1rem;
border: 1px solid #ccc;
border-radius: 5px;
}
button {
width: 100%;
padding: 0.5rem;
background-color: #4CAF50;
color: white;
border: none;
border-radius: 5px;
cursor: pointer;
}
ul {
list-style: none;
padding: 0;
}
li {
padding: 0.5rem;
border-bottom: 1px solid #eee;
display: flex;
justify-content: space-between;
}
li.done {
text-decoration: line-through;
color: gray;
}
نوشتن کد جاوااسکریپت
در این مرحله منطق برنامه را با جاوااسکریپت مینویسیم تا کاربر بتواند وظایف را اضافه، حذف و علامتگذاری کند.
document.addEventListener('DOMContentLoaded', () => {
const input = document.getElementById('todo-input');
const addBtn = document.getElementById('add-btn');
const todoList = document.getElementById('todo-list');
addBtn.addEventListener('click', () => {
const taskText = input.value.trim();
if (taskText === '') return;
const li = document.createElement('li');
li.textContent = taskText;
const removeBtn = document.createElement('button');
removeBtn.textContent = 'حذف';
removeBtn.style.marginRight = '10px';
removeBtn.addEventListener('click', () => {
li.remove();
});
li.addEventListener('click', () => {
li.classList.toggle('done');
});
li.appendChild(removeBtn);
todoList.appendChild(li);
input.value = '';
});
});
ویژگیهای قابل گسترش
در نسخههای بعدی میتوان امکاناتی مانند ذخیرهسازی در localStorage، قابلیت ویرایش وظایف، اولویتبندی و فیلتر کردن کارها را اضافه کرد.
جمعبندی
ساخت Todo App با جاوااسکریپت خالص به ما کمک میکند تا مفاهیم پایهای مانند مدیریت DOM، رویدادها و تعامل با کاربر را بهتر درک کنیم. این پروژه پایهای خوبی برای ورود به دنیای برنامهنویسی وب است.