todolist简单草图react版

无组件分布,无组件分布,无组件分布,全是css全是js的dom节点。是简单的草图

首先定义两个变量tasks 与 task ,分别装li里的数据与Input里面的数据。

 state = {
                tasks: [],
                task: ""
            }

在input中设置状态改变事件,当改变时把输入框中的内容同步给此时的task

添加任务时,点击按钮,并且加入index与date。

 //添加任务
            handleAddTask = () => {
                const { task, tasks } = this.state
                if (!task) return
                //添加数据 同步到state
                tasks.unshift({ task: task, date: new Date().toLocaleDateString() })
                //视图同步
                this.setState({
                    task: "", //清空输入框
                    tasks
                })
            }
  <h1>Today Tasks:{tasks.length}</h1>
                        <div>
                            <input type="text" value={this.state.task} onChange={this.handleChange} />
                            <button onClick={this.handleAddTask} >add task</button>
                        </div>

 点击删除按钮,触发方法:

 //删除任务
            handleDeleteTask = (index) => {
                const { tasks } = this.state
                tasks.splice(index, 1)
                this.setState({
                    tasks: tasks
                })
            }

视图的样子如下:be like

  //视图 
            render() {
                const { tasks } = this.state
                return (
                    <div>
                        <h1>Today Tasks:{tasks.length}</h1>
                        <div>
                            <input type="text" value={this.state.task} onChange={this.handleChange} />
                            <button onClick={this.handleAddTask} >add task</button>
                        </div>
                        <div>
                            <ul>
                                {
                                   tasks.map((item, index) => {
                                        <li key={index}> <span> {index + 1}---{item.task}----{item.date}</span>
                                            <button onClick={this.handleDeleteTask.bind(this,index)}>dele</button></li>
                                    })  
                                }
                            </ul>
                        </div>
                    </div>
                )
            }

        }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值