React----简易待办事项

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>待办事项</title>
   <!--  引入外部文件-->
  <script src="./lib/react.development.js"></script>
  <script src="./lib/react-dom.development.js"></script>
  <script src="./lib/babel.min.js"></script>
</head>
<body>
  <div id="app"></div>
</body>
<script type="text/babel">
  const { Component } = React

  class TodoList extends Component{
    constructor(props){
      super(props)
      this.state = {
        list: [],
        todoListStyle:{
          color:'deeppink',
          fontSize:'2rem'
        },
        todoListStyle2:{
          color:'orange',
          fontSize:'1.5rem'
        }
      }
    }

    KeyUpHandle(e){
      // console.log(e.target,e.currentTarget)
      const b = this.state.list
      if(e.keyCode == 13 && e.currentTarget.value){
        b.push({
          status:0,
          content: e.currentTarget.value
        })
        this.setState({
          list: b  //[...this.state.list,e.currentTarget.value]
        })
        e.currentTarget.value = ''
      }
    }
    endHandle(index){
      const d =this.state.list
      d[index].status = 1
      this.setState({
        list:d
      })
    }
    delHandle(index){
      const d =this.state.list
      d.splice(index,1)
      this.setState({
        list:d
      })
    }

    render(){
      const { list,todoListStyle,todoListStyle2 } = this.state
      return(<div className='todo-list'>
        <h4>待办事项</h4>
        <input onKeyUp={this.KeyUpHandle.bind(this)} placeholder='请输入待办事项' />
        <br />
        <ul>
          {list.map((item,index) => {
            return (<li style={item.status == 0 ? todoListStyle : todoListStyle2} key={index}>
              <span>{item.content}</span>
              <button onClick={() =>{ this.endHandle(index) }}>完成</button>
              <button onClick={() =>{ this.delHandle(index) }}>删除</button>
            </li>)
          })}
        </ul>
      </div>)
    }
  }


  const App = (props) => {
    return (<div className='container'>
      <TodoList />
    </div>)
  }

  ReactDOM.render(<App />,document.getElementById('app'))
</script>
</html>

效果显示如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值