使用 JavaScript 类构建交互式 ToDo List 应用

使用 javascript 类构建交互式 todo list 应用

本文旨在指导开发者使用 JavaScript 类构建一个功能完善的 ToDo List 应用。通过面向对象编程(OOP)的思想,我们将任务管理和界面渲染分离,实现代码的模块化和可维护性。教程将涵盖类的设计、事件处理以及动态更新用户界面等关键步骤,并提供完整的代码示例。

概述

使用面向对象编程(OOP)方法创建 ToDo List 应用,可以更好地组织和管理代码。我们将创建两个主要的类:List 用于管理任务列表,Render 用于处理用户界面的渲染和事件。

List 类:任务管理

List 类负责存储和管理 ToDo List 中的任务。它包含添加、删除任务的方法,并与 Render 类协同,以便在界面上反映任务列表的更改。

class List {  toDo = [];  constructor(render) {    this.render = render;    this.render.renderList(this.toDo);  }  addTask(task) {    this.toDo.push(task);    this.render.renderList(this.toDo);  }  removeTask(task) {    this.toDo = this.toDo.filter((word) => word !== task);    this.render.renderList(this.toDo);  }}

要点:

立即学习“Java免费学习笔记(深入)”;

toDo 数组用于存储任务列表。constructor 接收 Render 类的实例,并调用 renderList 方法初始化界面。addTask 方法向 toDo 数组添加新任务,并更新界面。removeTask 方法从 toDo 数组中删除任务,并更新界面。 注意这里使用了 filter 方法创建了一个新的数组,避免直接修改原数组导致的问题。

Render 类:界面渲染与事件处理

Render 类负责处理用户界面的渲染和事件监听。它监听添加按钮的点击事件,以及删除按钮的点击事件,并调用 List 类的方法来更新任务列表。

class Render {  constructor(input) {    this.input = input;    const taskInput = this.input.querySelector("input");    const addButton = this.input.querySelector("button");    const ul = this.input.querySelector(".tasks");    addButton.addEventListener("click", () => {      const task = taskInput.value.trim();      if (task !== "") {        list.addTask(task);        taskInput.value = "";      }    });    ul.addEventListener("click", (event) => {      if (event.target.tagName === "BUTTON") {        const task = event.target.previousSibling.textContent;        list.removeTask(task);      }    });  }  renderList(toDo) {    const ul = this.input.querySelector(".tasks");    ul.innerHTML = "";    toDo.forEach((task) => {      const li = document.createElement("li");      li.textContent = task;      const deleteButton = document.createElement("button");      deleteButton.textContent = "Delete";      li.appendChild(deleteButton);      ul.appendChild(li);    });  }}

要点:

立即学习“Java免费学习笔记(深入)”;

constructor 接收包含 ToDo List 元素的容器,并获取输入框、添加按钮和任务列表的引用。添加按钮的点击事件监听器,用于获取输入框中的任务,并调用 list.addTask 方法添加任务。任务列表的点击事件监听器,用于监听删除按钮的点击事件,并调用 list.removeTask 方法删除任务。renderList 方法用于渲染任务列表。它首先清空任务列表,然后遍历 toDo 数组,为每个任务创建一个 li 元素,并添加删除按钮。

HTML 结构

以下是 ToDo List 应用的 HTML 结构:

                  Document          div {        margin: 80px auto;        text-align: center;      }      input {        width: 20%;      }            

    说明:

    是 ToDo List 应用的容器。 是输入框,用于输入任务。 是添加按钮,用于添加任务。

      是任务列表,用于显示任务。 和 用于引入 JavaScript 文件。

      初始化

      最后,我们需要创建 Render 和 List 类的实例,并将它们关联起来:

      const render = new Render(document.querySelector("#to-do-container"));const list = new List(render);

      说明:

      document.querySelector(“#to-do-container”) 获取 ToDo List 应用的容器。new Render(…) 创建 Render 类的实例,并将容器传递给它。new List(…) 创建 List 类的实例,并将 Render 类的实例传递给它。

      总结

      通过使用 JavaScript 类,我们成功构建了一个交互式的 ToDo List 应用。这种方法将任务管理和界面渲染分离,使得代码更易于维护和扩展。同时,通过事件监听,我们可以实现用户与应用的交互,从而提供更好的用户体验。在实际开发中,可以根据需求进一步扩展此应用,例如添加任务优先级、截止日期等功能。

      以上就是使用 JavaScript 类构建交互式 ToDo List 应用的详细内容,更多请关注创想鸟其它相关文章!

      版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
      如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
      发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/136032.html

      (0)
      打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
      上一篇 2025年11月29日 20:50:28
      下一篇 2025年11月29日 21:30:07

      相关推荐

      • SPK币未来如何?Spark Protocol(SPK)价格预测2025-2030

        目录 Spark项目概览Spark项目背景Spark项目类别1. 稳定币收益优化2. DeFi自动化基础设施3. 跨链流动性路由4. 代币经济驱动的AMM参与Spark市场分析SPK币价格分析当前指标SPK币价格预测(2025-2030)理由:总结 spark protocol (spk)正在崭露头…

        2025年12月8日 好文分享
        000
      • 比特币缩放摊牌:闪电网络,sztorc和付款的未来

        闪电网络是“巨大失败”吗?paul sztorc和alex gladstein对比特币扩展方案展开激烈争论。加入讨论! 比特币扩展对决:闪电网络、Sztorc与支付的未来 比特币扩展之争愈演愈烈!闪电网络是否兑现了它的承诺,还是如Paul Sztorc所言,是一个“巨大的失败”?本文深入探讨这场争议…

        2025年12月8日
        000
      • Aptos(APT)加密反弹:这是现在购买的最高加密货币吗?

        aptos(apt)展现出增长潜力的韧性。深入解析其技术实力、市场地位,以及在复杂信号中是否值得入手。 Aptos(APT)加密反弹:当前是否是买入的最佳时机? 在加密市场面临多空交织的背景下,Aptos(APT)正显现出复苏迹象。经历一波上涨后,APT交易价约为4.096美元,它能否守住阵地,并跻…

        2025年12月8日
        000
      • 错过了BNB? Ruvi AI的预售带有AI奖金可能是您的第二次机会

        ruvi ai(ruvi)正在提供一次诱人的预售机会,并附带潜在的ai奖金,吸引了那些未能参与binance coin(bnb)早期阶段投资者的关注。这是否是下一个重大机遇?让我们一探究竟。 错过BNB?Ruvi AI的预售和AI奖励或许是你的新机会 Binance Coin(BNB)曾带来惊人的回…

        2025年12月8日
        000
      • Ruvi AI:真的准备好Eclipse Tron和其他加密巨头吗?

        ruvi ai将区块链与人工智能结合,据预测可带来103倍的投资回报率。但这样一个新兴项目,真的能撼动tron这样的老牌巨头吗? 加密圈的朋友们注意了!尽管Tron一直在区块链领域占据一席之地,但一个新势力正悄然崛起——Ruvi AI。它带着惊人的承诺和前沿技术强势登场,是否会动摇Tron的地位?我…

        2025年12月8日
        000
      • WIF价格检查:每周需求,反弹或崩溃?

        dogwifhat(wif)价格走势扑朔迷离!我们深入分析了wif当前的价格动向、关键需求区域以及可能的反弹或下跌趋势。 加密圈的朋友们,是时候聊聊Wif了。这枚基于索拉纳链的模因币Dogwifhat(WIF)近期波动剧烈,大家都在关心:接下来它会走向何方?我们一起来看看WIF价格走势、周线级别的买…

        2025年12月8日
        000
      • Ondo Price:它可以收回$ 1并达到3美元吗?预测潜水

        ondo价格承受下行压力,但积极信号逐渐显现。它能否重返1美元并飙升至3美元?本文基于最新市场动态探讨了ondo的未来潜力。 近期,RWA代币Ondo经历了剧烈波动,但是否已为强势反弹做好准备?我们将深入分析技术图表,并探讨分析师对于Ondo重回1美元甚至冲击更高目标的看法。 Ondo价格:迈向1美…

        2025年12月8日
        000
      • Neo Pepe硬币:模因令牌接管加密货币预售

        neo pepe coin($neop)正在成为一种独特的模因币,凭借其结构化的预售机制、强大的治理模式以及以社区为中心的理念迅速崭露头角。 在不断变化的加密货币市场中,一个全新的模因币正掀起热潮:Neo Pepe Coin($neop)。当Pepe币面临下行压力时,Neo Pepe以其创新策略和坚…

        2025年12月8日
        000
      • Magacoin Finance:2025年投资者的宠儿?

        magacoin finance在2025年以其预售吸引了大量投资者的目光。这款结合模因元素与创新功能的代币,是否真的具备引爆市场的潜力? Magacoin Finance:2025年加密投资新焦点? 在快速演变的加密货币领域中,Magacoin Finance自2025年起便凭借其预售活动引起了广…

        2025年12月8日
        000
      • Cathie Wood,Ark Invest和Circle Shares:在Stablecoin Wave上狂野的旅程

        cathie wood的ark invest在其持有的circle(crcl)股份上进行了调整,这一举动正值稳定币市场乐观情绪高涨之际,受到监管进展与市场热情的双重推动。 Cathie Wood、Ark Invest与Circle Shares:在稳定币浪潮中的激荡旅程 ARK Invest在Cir…

        2025年12月8日
        000
      • Neo Pepe Presale:下一个大模因硬币?

        潜入neo pepe预售热潮!这是下一个pepe还是shib?揭示投资者为何纷纷加入neo pepe浪潮。 Neo Pepe预售:下一个热门模因币? 青蛙币正在崛起,Neo Pepe引发热议!随着预售阶段的火热进行,Neo Pepe是否有望成为下一个现象级模因币?我们一起来看看是什么让这款以青蛙为主…

        2025年12月8日
        000
      • Cardano,Polkadot和未固定的ROI:解码最新的加密策略

        探索cardano与polkadot的比特币布局,以及unstaked所带来的高回报潜力,为精明的加密投资者提供新视角。 Cardano、Polkadot与Unstaked正在加密领域掀起波澜。让我们深入剖析它们的战略及其潜在投资回报。 Cardano的比特币部署:推动DeFi发展? Cardano…

        2025年12月8日
        000
      • Ruvi AI:区块链技术遇到了现实世界实用程序 – 下一件大事?

        ruvi ai能否引领下一轮牛市?探索其区块链与人工智能的融合如何对接实际应用,从而确立其顶级加密竞争者的地位。 加密世界不断创新,而Ruvi AI正站在风口浪尖。通过将区块链技术与现实应用场景结合,它不仅仅是一个普通的代币,更可能成为颠覆行业的关键角色。 Ruvi AI:连接区块链与AI,创造真实…

        2025年12月8日
        000
      • 云挖掘,比特币和XRP:2025透视图

        通过flare的firelight等创新平台探索2025年云挖矿、比特币角色演变以及xrp在去中心化金融中的整合。 云挖矿、比特币与XRP:2025展望 进入2025年,加密货币领域仍在快速演进。我们来看看当前围绕云挖矿的最新进展、比特币持续发展的定位,以及XRP在DeFi(去中心化金融)方面的突破…

        2025年12月8日
        000
      • Binance,创始人和ATH:浏览加密货币景观

        cz谈市场调整与ath前景,结合ruvi ai等bnb潜在竞争者的崛起,勾勒出加密市场的复杂格局。 Binance、创始人与ATH:穿越加密世界的视角 加密货币领域从不缺乏动态变化。从市场回调到新型实用代币的涌现,这一行业持续演变。我们来探讨一下Binance的最新动向、创始人的观点,以及对下一个历…

        2025年12月8日
        000
      • Ruvi AI vs. Solana:2025年的投资回报

        ruvi ai:以ai与区块链的融合掀起热潮,挑战solana霸主地位,或带来高达13,200%的roi。它会是加密投资的新未来吗? 在持续演化的加密领域中,投资者始终在寻找下一个风口。尽管Solana凭借其高效的区块链技术广受欢迎,但Ruvi AI(简称Ruvi)正以AI与区块链结合的独特模式崭露…

        2025年12月8日
        000
      • 矿工发货狂热:块状铅牵引,而乔格倾角和vechain氛围

        blockdag的矿工运输即将启动,与dogecoin的价格挣扎和vechain的生态扩展形成鲜明对比。blockdag会成为下一个大事件吗? 加密世界从不停歇,精彩剧情也从未中断。眼下,所有人关注的焦点都集中在矿工交付进展上,而Dogecoin正面临市场压力,同时Vechain则悄然推动其技术升级…

        2025年12月8日
        000
      • Hive Digital的多伦多AI数据中心:主权强国

        hive digital在多伦多插上旗帜,将其数据中心升级为ai计算的核心力量。这一大胆举措对加拿大在人工智能领域的雄心意味着什么? 嘿,注意啦!Hive Digital在多伦多设立的新AI数据中心正引发广泛关注。这不仅仅是一次普通的扩张;而是一场抢占加拿大AI高地的战略布局。我们来一探究竟。 多伦…

        2025年12月8日
        000
      • Moonx的全球KOL招聘:塑造链贸易生态系统

        moonx推出全球kol招募计划,诚邀行业意见领袖共同打造bydfi生态中的链上交易新纪元。 Moonx全球KOL招募:引领链上交易生态变革 加密领域持续进化,由BYDFI推出的Moonx正凭借其独特的链上交易工具掀起波澜。如今,该平台正式启动全球KOL招募计划,旨在邀请具有影响力的创作者与社区领袖…

        2025年12月8日
        000
      • AI,编码和GitHub首席执行官:为什么人类开发人员不去任何地方

        github首席执行官thomas dohmke指出,ai不会取代人类程序员,而是作为辅助工具提升其效率。了解ai如何改变编程领域,以及开发者仍然不可或缺的原因。 AI、编程与GitHub CEO:为何人类开发者依然不可替代 GitHub首席执行官Thomas Dohmke表示,AI对开发者来说是“…

        2025年12月8日
        000

      发表回复

      登录后才能评论
      关注微信