首页 > web前端 > js教程 > 使用 TypeScript 设置 Vite 以获得简单的待办事项列表

使用 TypeScript 设置 Vite 以获得简单的待办事项列表

Susan Sarandon
发布: 2025-01-17 04:31:08
原创
606 人浏览过

Setting up Vite with TypeScript for a Simple To-Do List

本教程将指导您使用 Vite 和 TypeScript 创建一个基本的待办事项列表应用程序。 我们将保持简单,专注于 Vite 的核心功能,无需外部框架或库。

项目设置

确保安装了 Node.js 和 npm。 然后,使用终端创建并初始化项目:

<code class="language-bash"># Create a new Vite project
npm create vite@latest my-todo-app -- --template vanilla-ts

# Navigate to the project directory
cd my-todo-app

# Install dependencies
npm install

# Open in your code editor
code .</code>
登录后复制

这将创建 my-todo-app,一个使用 vanilla-ts 模板的 Vite 项目,非常适合简单的 TypeScript 应用程序。 安装依赖项后,在您喜欢的代码编辑器中打开项目。

项目结构

您的项目目录将具有以下结构:

<code>my-todo-app/
├── node_modules/
├── public/
│   └── vite.svg
├── src/
│   ├── main.ts
│   └── style.css
├── index.html
├── package.json
├── tsconfig.json
├── vite.config.ts
└── package-lock.json</code>
登录后复制

src/main.ts 包含您的应用程序逻辑,public/ 保存静态资产,index.html 是入口点。 package.json 管理依赖关系。

修改src/main.ts

src/main.ts 的内容替换为以下代码:

<code class="language-typescript">interface Todo {
  id: number;
  text: string;
  completed: boolean;
}

let todos: Todo[] = [];
let nextTodoId = 1;

const todoInput = document.createElement('input');
todoInput.type = 'text';
todoInput.placeholder = 'Enter a new todo';

const addButton = document.createElement('button');
addButton.textContent = 'Add Todo';

const todoList = document.createElement('ul');

document.body.appendChild(todoInput);
document.body.appendChild(addButton);
document.body.appendChild(todoList);

function renderTodos() {
  todoList.innerHTML = '';
  todos.forEach(todo => {
    const listItem = document.createElement('li');
    const checkbox = document.createElement('input');
    checkbox.type = 'checkbox';
    checkbox.checked = todo.completed;
    checkbox.addEventListener('change', () => toggleTodo(todo.id));

    const label = document.createElement('label');
    label.textContent = todo.text;
    label.style.textDecoration = todo.completed ? 'line-through' : 'none';

    const deleteButton = document.createElement('button');
    deleteButton.textContent = 'Delete';
    deleteButton.addEventListener('click', () => deleteTodo(todo.id));

    listItem.appendChild(checkbox);
    listItem.appendChild(label);
    listItem.appendChild(deleteButton);
    todoList.appendChild(listItem);
  });
}

function addTodo() {
  const text = todoInput.value.trim();
  if (text) {
    const newTodo: Todo = {
      id: nextTodoId++,
      text: text,
      completed: false,
    };
    todos.push(newTodo);
    todoInput.value = '';
    renderTodos();
  }
}

function toggleTodo(id: number) {
  todos = todos.map(todo =>
    todo.id === id ? { ...todo, completed: !todo.completed } : todo
  );
  renderTodos();
}

function deleteTodo(id: number) {
  todos = todos.filter(todo => todo.id !== id);
  renderTodos();
}

addButton.addEventListener('click', addTodo);

renderTodos();</code>
登录后复制

此 TypeScript 代码实现了待办事项列表的核心功能:添加、完成和删除任务。

修改index.html

使用以下内容更新index.html

<code class="language-html"><!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <link rel="icon" type="image/svg+xml" href="/vite.svg" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Vite + TS To-Do</title>
  </head>
  <body>
    <div id="app"></div>
    <script type="module" src="/src/main.ts"></script>
  </body>
</html></code>
登录后复制

这仅包含 main.ts 脚本。 实际渲染在 JavaScript 中动态发生。

运行开发服务器并构建

运行 npm run dev 启动开发服务器(可通过 http://localhost:5173 访问)。 对于生产版本,请使用 npm run build。 这将在 dist 文件夹中创建一个生产就绪版本。

这份简化的指南提供了使用 Vite 和 TypeScript 构建简单的待办事项列表应用程序的清晰路径。 您可以根据需要通过集成 UI 框架或其他样式来扩展此基础。

以上是使用 TypeScript 设置 Vite 以获得简单的待办事项列表的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板