zoukankan      html  css  js  c++  java
  • React学习 之 阶段性小作品(待办事项_已完成事项 CRUD)

    (一)React demo 作品展示

    (二)代码附详细解释

      将此组件在app.js中引用即可,非常方便。

      

    import React,{Component} from 'react';
    
    import '../assets/css/index.css';
    
    class Todo extends Component{
    
        constructor(props){
            super(props);
            this.state = {
                list:[
                    {
                        title:'起床',
                        checked:false
                    },
                    {
                        title:'刷牙',
                        checked:false
                    },
                    {
                        title:'吃早餐',
                        checked:false
                    },
                    {
                        title:'背书包去公司',
                        checked:false
                    },
                    {
                        title:'开始写代码',
                        checked:false
                    }
                ]
            };
        }
    
        checkBoxState=(key)=>{
    
            //alert("111");
            let tempList = this.state.list;
            //该变选中的状态
            tempList[key].checked = !tempList[key].checked;
    
            this.setState({
                list:tempList
            })
    
        }
    
        removeDate=(key)=>{
    
            let tempList = this.state.list;
            //splice(key,1) 从key 开始 删除一个数据
            tempList.splice(key,1)
    
            this.setState({
                list:tempList
            })
        }
    
        addData= (e) =>{
            //Enter的 keyCode为13  这是键盘事件
            if(e.keyCode == 13){
                //获取输入框中的值
                let title = this.refs.title.value;
                //将数组赋值给一个零时的数组进行操作
                let tempList = this.state.list;
    
                //将输入框里的值放到数组中,默认为待办事件
                tempList.push({
                    title:title,
                    checked:false
                })
    
                //改变后的值赋值给原list
                this.setState({
                    list:tempList
                })
    
                //添加后将输入框中的值清空
                this.refs.title.value = '';
            }
        }
    
        render(){
    
            return(
                <div>
    
                    <header className="title">TodoList:  <input ref="title" onKeyUp={this.addData} /> </header>
    
                    <h2>待办事件</h2>
                    <ul className="db">
                        {
                            this.state.list.map((value,key)=>{
                                if(!value.checked){
                                    return(
                                        <li>
                                            <input type="checkbox" checked={value.checked} onChange={this.checkBoxState.bind(this,key)}></input>
                                           {value.title}
                                           ---- <button onClick={this.removeDate.bind(this,key)}>删除</button>
                                        </li>
                                    )
                                }
                            })
                        }
    
                    </ul>
    
                    <hr/>
                    <h2>已完成事件</h2>
                    <ul className="db2">
                        {
                            this.state.list.map((value,key)=>{
                                if(value.checked){
                                    return(
                                        <li>
                                            <input type="checkbox" checked={value.checked} onChange={this.checkBoxState.bind(this,key)}></input>
                                           {value.title}
                                           ---- <button onClick={this.removeDate.bind(this,key)}>删除</button>
                                        </li>
                                    )
                                }
                            })
                        }
    
                    </ul>
                    <hr/>
    
    
                </div>
            )
        }
    }
    
    export default Todo;

      

        开心就好

  • 相关阅读:
    MISP版本嵌入式QT编译时出现mips-linux-gcc command not found
    数据传输对象(DTO)介绍及各类型实体比较
    signalR例子
    WebAPI GET和POST请求的几种方式
    github教程
    Asp.net MVC + EF + Spring.Net 项目实践3
    SpringMVC
    SignalR
    SignalR的实时高频通讯
    开发视频教程
  • 原文地址:https://www.cnblogs.com/misscai/p/10399901.html
Copyright © 2011-2022 走看看