当前位置: 首页 > news >正文

待办事项小程序开发

1. 项目规划

  • 功能需求
    • 添加待办事项
    • 标记完成/未完成
    • 删除待办事项
    • 分类或标签管理(可选)
    • 数据持久化(本地存储)

2. 实现功能

  • 添加待办事项
    • 监听输入框和按钮事件,将输入内容添加到列表。 
  • 标记完成/未完成
    • 使用复选框或滑动操作,更新事项状态。
  • 删除待办事项
    • 支持左滑删除或长按删除。
  • 数据持久化
    • 使用本地存储待办事项数据。

3. 代码实现

基于微信小程序开发一个待办事项应用,主要包括以下功能:

  1. 创建待办事项
  2. 标记完成状态
  3. 删除待办事项
  4. 本地存储待办事项数据

首先,我会创建以下文件:

  1. app.json - 小程序全局配置
  2. pages/index/index.js - 页面逻辑
  3. pages/index/index.wxml - 页面结构
  4. pages/index/index.wxss - 页面样式
  5. pages/index/index.json - 页面配置

{"pages": ["pages/index/index"],"window": {"navigationBarTitleText": "待办事项","navigationBarBackgroundColor": "#ffffff","navigationBarTextStyle": "black"},"style": "v2","sitemapLocation": "sitemap.json"
}

<view class="container"><view class="header"><inputplaceholder="添加待办事项"value="{{inputValue}}"bindinput="inputChange"bindconfirm="addTodo"/><button bindtap="addTodo">添加</button></view><view class="todo-list"><viewwx:for="{{todos}}"wx:key="id"class="todo-item {{item.done ? 'done' : ''}}"bindtap="toggleTodo"data-id="{{item.id}}"><text>{{item.text}}</text><button bindtap="deleteTodo" data-id="{{item.id}}">删除</button></view></view>
</view>

.container {padding: 20px;
}
.header {display: flex;margin-bottom: 20px;
}
.header input {flex: 1;margin-right: 10px;padding: 10px;border: 1px solid #ccc;border-radius: 4px;
}
.todo-list {margin-top: 20px;
}
.todo-item {display: flex;justify-content: space-between;align-items: center;padding: 10px;margin-bottom: 10px;border: 1px solid #eee;border-radius: 4px;
}
.todo-item.done {text-decoration: line-through;color: #999;
}

Page({data: {todos: [],inputValue: ''},onLoad() {this.loadTodos();},loadTodos() {const todos = wx.getStorageSync('todos') || [];this.setData({ todos });},saveTodos() {wx.setStorageSync('todos', this.data.todos);},addTodo() {if (!this.data.inputValue.trim()) return;const newTodo = {id: Date.now(),text: this.data.inputValue,done: false};this.setData({todos: [...this.data.todos, newTodo],inputValue: ''}, this.saveTodos);},toggleTodo(e) {const { id } = e.currentTarget.dataset;const todos = this.data.todos.map(todo =>todo.id === id ? { ...todo, done: !todo.done } : todo);this.setData({ todos }, this.saveTodos);},deleteTodo(e) {const { id } = e.currentTarget.dataset;const todos = this.data.todos.filter(todo => todo.id !== id);this.setData({ todos }, this.saveTodos);},inputChange(e) {this.setData({ inputValue: e.detail.value });}
});
http://www.dtcms.com/a/330598.html

相关文章:

  • (第十六期)HTML布局标签详解:div与span的深度解析
  • 【读代码】深度解析 context-engineering-intro:开源上下文工程实践原理与应用
  • 群晖 NAS 影音访问:通过 cpolar 内网穿透服务实现 Nastool 远程管理
  • java集合 之 多列集合
  • Python/Node.js 调用taobao API:构建实时商品详情数据采集服务
  • 使用HalconDotNet实现异步多相机采集与实时处理
  • Mybatis学习笔记(六)
  • 桥接模式C++
  • 成都国际影像产业园:接重庆五一职院实训就业考察
  • [系统架构设计师]软件工程基础知识(五)
  • 系统思考:转型困扰与突破
  • 【软考中级网络工程师】知识点之入侵检测深度剖析
  • 开源安全云盘存储:Hoodik 实现端到端数据加密,Docker快速搭建
  • 分享一个基于Hadoop+spark的超市销售数据分析与可视化系统,超市顾客消费行为分析系统的设计与实现
  • Java应用架构实战指南:主流模式解析与Spring落地实践
  • 从零开始学Python之数据结构(字符串以及数字)
  • Java 大视界 -- Java 大数据机器学习模型在金融欺诈检测与防范策略制定中的应用(397)
  • 工业一体机5G通讯IC/ID刷卡让MES系统管理更智能
  • 第四天~在CANFD或CAN2.0的ARXML文件中实现Multiplexor多路复用信号实战
  • 怎么判断晶振的好坏,有什么简单的办法
  • AR技术赋能电力巡检:智能化升级的“秘密武器”
  • 计算机视觉(opencv)实战三——图像运算、cv2.add()、cv2.addWeighted()
  • 设计模式笔记_行为型_责任链模式
  • 【论文阅读 | CVPR 2024 | UniRGB-IR:通过适配器调优实现可见光-红外语义任务的统一框架】
  • linux 内核 - 内存管理的层次化结构
  • UE5配置MRQ编解码器输出MP4视频
  • Linux网络编程:应用层自定义协议与序列化
  • 《量子雷达》第5章 量子雷达发射机 预习2025.8.14
  • 人工智能——卷积神经网络自定义模型全流程初识
  • .NET 的 WebApi 项目必要可配置项都有哪些?