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;


  

    开心就好

原文地址:https://www.cnblogs.com/misscai/p/10399901.html

时间: 2024-07-30 06:39:27

React学习 之 阶段性小作品(待办事项_已完成事项 CRUD)的相关文章

Vue.js起手式+Vue小作品实战

本文是小羊根据Vue.js文档进行解读的第一篇文章,主要内容涵盖Vue.js的基础部分的知识的,文章顺序基本按照官方文档的顺序,每个知识点现附上代码,然后根据代码给予个人的一些理解,最后还放上在线编辑的代码以供练习和测试之用:在最后,我参考SegmentFault上的一篇技博,对Vue进行初入的实战,目的是将新鲜学到的知识立即派上用场:如果你还是前端的小白,相信这篇文章可能会对产生一些帮助和引起思想的碰撞,因为大家的学习历程是相似的,遇到的困惑也有一定的共通性,如果文章出现谬误之处,欢迎各位童鞋

Native VS React Native VS 微信小程序

随着React Native和 微信小程序的出现,Native一家独大的局面出现裂痕,很多小公司使用已经正在着手微信小程序和React Native了,我公司就已经走上React Native之路.那么,React Native 和 Native 和 微信小程序 三者比较起来到底哪者更强呢?今天从适应性(适合什么项目).开发限制.软件迭代更新.成本角度谈谈自己对三者的看法. 个人角度: 适应性(适应什么项目) 大项目.游戏项目:Native 中大型项目:react native 小项目:微信小程

java学习中,成员内部类、匿名内部类(java 学习中的小记录)

java学习中,成员内部类.匿名内部类(java 学习中的小记录)作者:王可利(Star·星星) 内部类: 一个类中定义另外一个类,这样的类叫内部类. 内部类的文件名:外部类名$内部类名.class    内部类分两种: 1.成员内部类 如何访问成员内部类:             方式1:外部类中定义一个方法来创建内部类对象,再通过对象进行访问.             方式2:可以直接在其他类中直接创建内部类这个对象,通过对象访问.用点语.                       格式:

React 学习路线

以下所谈及的,就是为你定制的 React 学习路线. 为了能稳固基础,我们一定要逐步地来进行学习. 倘若你正在建造一间房子,那么为了能快点完成,你是否会跳过建造过程中的部分步骤?如在具体建设前先铺设好部分石头?或直接在一块裸露的土地上先建立起墙面? 又假如你是在堆砌一个结婚蛋糕:能因为上半部分装饰起来更有趣,而直接忽略了下半部分? 不行吗? 当然不行.众所周知,这些做法只会导致失败. 因此,不要想着通过接触 React 来将 ES6 + Webpack + Babel + React + Rou

java学习中,面向对象的三大特性:封装、继承、多态 以及 super关键字和方法的重写(java 学习中的小记录)

java学习中,面向对象的三大特性:封装.继承.多态 以及 super关键字和方法的重写(java 学习中的小记录) 作者:王可利(Star·星星) 封装     权限修饰符:public 公共的,private 私有的     封装的步骤:          1.使用private 修饰需要封装的成员变量.          2.提供一个公开的方法设置或者访问私有的属性              设置 通过set方法,命名格式:     set属性名();  属性的首字母要大写 访问 通过ge

java学习中,接口的使用(重要,常用知识点)(java 学习中的小记录)

java学习中,接口的使用(重要,常用知识点)(java 学习中的小记录)作者:王可利(Star·星星) 接口(功能:用来添加拓展功能的) 例子:铅笔.带橡皮檫的铅笔. 两个功能:     1.写字......> 铅笔     2.擦字......> 橡皮擦 想法:定义一个铅笔类,定义一个橡皮擦类,定义一个带橡皮擦的铅笔类继承 铅笔类和橡皮擦类 但是java是单继承的.于是就有了解决的方法:接口(可以添加拓展功能) 如:一个铅笔类,给它添加一个接口给它一个拓展类(橡皮擦类) 接口的定义模式 用

分享一个Unity3D小作品,欢迎索取源码!

在一年多前知道了Unity这款游戏引擎.在得知她极大地简化游戏开发的难度并可以使用我最熟悉的C#开发后,便毅然决然地开始学习Unity3D.说来惭愧,期间,由于个人原因,学习断断续续,直到现在才有一个勉强拿的出手的小作品.这款小游戏是一款类似超级马里奥的冒险游戏,玩法简单明了不费脑. 游戏截图 菜单界面 查看最高分 设置游戏难度,主要是设置主角受攻击时的伤害 可以通过跳跃攻击小怪兽 匕首攻击 滑行越过障碍物 乘坐来回移动的平台去往目的地 你赢了!就这样! 操作键设置 在该项目中自定义了几个操作键

react学习小结(生命周期- 实例化时期 - 存在期- 销毁时期)

react学习小结 本文是我学习react的阶段性小结,如果看官你是react资深玩家,那么还请就此打住移步他处,如果你想给一些建议和指导,那么还请轻拍~ 目前团队内对react的使用非常普遍,之前对react使用不多,正好我目前在做的项目也在使用react+redux,借着这个机会系统的学习下react+redux. react是什么 react是一个JavaScript类库,通过react,我们可以构建可组合的UI,也就是说,我们可以通过重用组件来组合出我们的UI.可以说react的核心便是

React学习笔记 - 组件&amp;Props

React Learn Note 4 React学习笔记(四) 标签(空格分隔): React JavaScript 三.组件&Props 组件可以将UI切分成一些独立的.可复用的部件,这样你就只需专注于构建每一个单独的部件. 组件接收props,返回react元素. 1. 函数定义\类定义组件 最简单组件方式 - 函数定义组件: // 函数定义组件 function Welcome(props) { return <h1>Hello, {props.name}!</h1>