Todolist.js

import React, { Component,Fragment } from 'react';
import TodoItem from './TodoItem';
import './style.css';
class Todolist extends Component {constructor(props) { //最优先执行的函数
        super(props);this.state={inputValue:'',list:[]}this.handleinputChange=this.handleinputChange.bind(this);this.handlebuttonClick=this.handlebuttonClick.bind(this);this.handleItemdelt=this.handleItemdelt.bind(this);}render() {return ( <Fragment><div>{/*这是一个todolist*/}<label htmlFor='insertArea'>输入内容</label><input id="insertArea"className='input'value={this.state.inputValue}onChange={this.handleinputChange}/><button onClick={this.handlebuttonClick}> 提交 </button> </div> <ul>{this.getTodoItem()}</ul> </Fragment>
        );}getTodoItem(){return this.state.list.map((item,index)=>{return(<TodoItem key={index}index={ index } item={ item } deleteItem={this.handleItemdelt}/>
                )})}handleinputChange(e){const value=e.target.value;this.setState(()=>({inputValue:value}));// this.setState({//     inputValue:e.target.value// })
    }handlebuttonClick(e){this.setState((prevState)=>{return{list:[...prevState.list,prevState.inputValue],inputValue:''}});// this.setState({//     list:[...this.state.list,this.state.inputValue],//     inputValue:''// })
    }handleItemdelt(index){// immutable// state 不允许我们坐任何的改变this.setState((prevState)=>{const list=[...prevState.list]; list.splice(index,1);return{list}})// const list=[...this.state.list];   // list的一个副本// list.splice(index,1);// this.setState({//     list:list// })
    }
}
export default Todolist;

TodoItem.js

import React ,{ Component } from 'react';
class TodoItem extends Component{constructor(props){super(props);this.handleclick=this.handleclick.bind(this);}render(){const { item }=this.props;return (<li onClick={this.handleclick}dangerouslySetInnerHTML={{__html:item}}></li>
            )}handleclick(){const {deleteItem,index}=this.props;deleteItem(index);}
}
export default TodoItem;

转载于:https://www.cnblogs.com/Lolita-web/p/9875642.html

react todolist代码优化相关推荐

  1. react es6+ 代码优化之路-1

    这里集合了一些代码优化的小技巧 在初步接触 es6+ 和 react 的时候总结的一些让代码跟加简化和可读性更高的写法 大部分知识点是自己在平时项目中还不知道总结的,一致的很多优化的点没有写出来,逐步 ...

  2. Node.js + React + MongoDB 实现 TodoList 单页应用

    之前用 Ant Design 开发了一个项目,因此对 React 的特性有了一定的了解,React 使用封装组件的思想,组件各自维护自己的状态和 UI, 组件之间通过 props 传递数据和方法.当状 ...

  3. react render没更新_web前端教程分享React学习笔记(一)

    web前端教程分享React学习笔记(一),React的起源和发展:React 起源于 Facebook 的内部项目,因为该公司对市场上所有 JavaScript MVC 框架,都不满意,就决定自己写 ...

  4. react的超详细讲解

    create-react-app 项目目录 在HTML中使用react 1 2 3基础 React的注意事项 模拟的React 和 render React组件 函数组件 类组件 React 的数据源 ...

  5. 慕课 简书项目 个人笔记

    第1章 课程导学 本章主要介绍学习react的重要性,课程的知识大纲,学习前提,讲授方式及预期收获. 1-1 课程导学 React由Fackbook 2013年5月推出开源框架,函数式编程React ...

  6. 七十六、React中的TodoList和拆分组件,组件之间的传值

    2020/11/18. 周三.今天又是奋斗的一天. @Author:Runsen 这东西已经有很多大佬们写过了,就不多班门弄斧了.主要使用这个例子入门 React ,包括 state.props.组件 ...

  7. react+redux+generation-modation脚手架搭建一个todolist

    TodoList 1. 编写actions.js 2. 分析state 试着拆分成多个reducer 3. 了解store 4. 了解redux数据流生命周期 5. 分析容器组件和展示组件 搞清楚,数 ...

  8. 初探react,用react实现一个todoList功能

    初探react,用react实现一个todoList功能

  9. React版本的todolist小demo 快速复习React(React)

    demo 介绍 该demo 就是帮你快速复习 react 的 事件传值,子组件传值,父传子,事件绑定,交互逻辑,react 语法,该demo有,显示隐藏列表,增加内容,删除todo,双击内容编辑是in ...

最新文章

  1. Faster-RCNN+ZF用自己的数据集训练模型(Python版本)
  2. DjangoAPP子路由
  3. 成功解决tensorflow.keras: AttributeError: ‘str‘ object has no attribute ‘decode‘
  4. c语言不会可以学好java吗_有人说学了C语言,两天就能学会Java,两个星期就可以找工作?...
  5. 数据结构之树【完善中】
  6. long在C语言中是非法字符吗,C程序设计实践——实验指导
  7. python文本相似度分析_文本相似度分析(基于jieba和gensim)
  8. 科学家做一个实验,我就得胖三斤?
  9. linux 如何加密文件夹,如何加密个别文件夹?
  10. 高德地图发布Q2交通报告
  11. trivy【1】漏洞扫描工具安装
  12. selenium不定位元素直接操作键盘之Keys.CONTROL
  13. 无线网络组建之设备选型
  14. 直角坐标系和极坐标系
  15. 收藏||二叉树的遍历:颜色标记法(前序、中序、后序通用)
  16. 【windows10】将路由器设置为交换机
  17. 正反斜杠的区别_正斜杠(/)和反斜杠(\)的区别
  18. 局域网、网段、子网的区别
  19. 猫眼api html,猫眼电影数据抓取
  20. Proactor模型

热门文章

  1. 动态分区添加的新字段无法插入数据
  2. Linux(Ubuntu)下设置开机自启shell脚本执行Java程序jar包
  3. ssm项目集成ftp_ssm开发旅游信息管理系统,包括前台和后台
  4. mysql查询缓存到redis_php查询mysql并缓存到redis
  5. 面条html5,使用 babel 全家桶模块化古老的面条代码
  6. 鸿蒙系统发布IT直播,华为开源平台上线:鸿蒙系统、方舟编译器在列
  7. oracle 序列验证脚本,oracle 生成序列脚本
  8. 传感器信号处理仿真实验(c语言实现),均值滤波,滑动滤波
  9. datax 导入数据中文乱码_DataX在有赞大数据平台的实践
  10. I/0口输入输出实验 将P1口的某一位作为输入使用,连接一个按键,当按键按下时使发光二极管亮,否则发光二极管熄灭