react todolist代码优化

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/570227.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

json、xml

json&#xff1a;(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。简单地说&#xff0c;JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串&#xff0c;然后就可以在函数之间轻松地传递这个字符串&#xff0c;或者在异步应用程序中将字符串从 …

Math.round(),Math.ceil(),Math.floor()的区别

round() 方法可把一个数字舍入为最接近的整数。 就是基本的四舍五入 document.write(Math.round(0.49)) 结果为&#xff1a;0document.write(Math.round(0.60)) 结果为&#xff1a;1document.write(Math.round(-5.1)) 结果为&#xff1a;-5document.write(Math.round(-5.6)) 结…

modifying的博客

https://www.cnblogs.com/JackLi07/转载于:https://www.cnblogs.com/wyh-blog/p/9882283.html

java生成随机数的两种方式

一、java.lang.Math.Random; Math.Random()函数能够返回带正号的double值&#xff0c;该值大于等于0.0且小于1.0&#xff0c;即取值范围是[0.0,1.0) //取1~10的随机数 Math.floor(Math.random()*101) 产生的是double随机数列。 ——————————–分割线————————…

TP3.2.x判断手机端访问并设置默认访问模块的方法 - ThinkPHP框架

手机端访问时调用Wap手机模块&#xff0c;实现在手机端访问时展示出手机网站&#xff0c;无需跳转域名首先我们在./Application/Common/Conf/ 目录下建立两个公共配置文件&#xff1a;config.php 和config_wap.phpconfig.php 中&#xff1a; return array( DEFAULT_MODULE&g…

request获取url的参数编码问题

1、设为utf-8编码 request.getParameter("Params")).getBytes("iso-8859-1"), "utf-8" ) 2、防止参数为null的情况&#xff0c; str null ? "" : str; 3、编解码问题 https://blog.csdn.net/farxix/article/details/78055469

python中前后端通信方法Ajax和ORM映射(form表单提交)

后端从数据库获取数据给到前端&#xff1a; 第一种方式&#xff1a; admin.py文件代码&#xff1a; admin.route(/showList) def show():# 获取数据库所有文章数据&#xff0c;得到一个个对象resArticle.query.all()dicts[]# 将每一个对象转成字典并加入一个列表&#xff0c;再…

java异常代码分析

觉得自己是一个Java专家吗&#xff1f;是否肯定自己已经全面掌握了Java的异常处理机制&#xff1f;在下面这段代码中&#xff0c;你能够迅速找出异常处理的六个问题吗&#xff1f; 1 OutputStreamWriter out ... 2 java.sql.Connection conn ... 3 try { // ⑸ 4  Statement…

NetworkManager

NetworkManager NetworkManager是一个组件,用来管理网络多人游戏的状态。 NetworkManager所具备的属性包括如下&#xff1a; 游戏状态管理派生管理场景管理Debugging信息比赛选择&#xff08;Matchmaker&#xff09;用户自定义使用NetworkManager NetworkManager可以作为核心控…

C#知识点总结系列:3、C#中Delegate和Event

一、Delegate委托可以理解为一个方法签名。 可以将方法作为另外一个方法的参数带入其中进行运算。在C#中我们有三种方式去创建委托&#xff0c;分别如下&#xff1a; public delegate void Print(string str);static void delegatemethod(string str){Console.WriteLine(str);}…

js获得7天后的日期时间

思路&#xff1a;当前日期天数7 直接上代码&#xff1a; function getSpecialTime() {var currentDate;var arry currentDate.split("-");var year parseInt(arry[0],10);var month parseInt(arry[1],10);var day parseInt(arry[2],10); //月份的方法&#xff…

python的2种字符串格式化输出

字符串格式化代码&#xff08;typecode&#xff09; 法一&#xff1a; %格式使用下面的格式 %[(name)] [flags] [width][.precision] typecode (name)输出字典的value使用&#xff0c;这里的name是字典的key&#xff08;实际指定时&#xff0c;必须有外面的圆括号&#xff09; …

JS弹出DIV并使整个页面背景变暗功能的实现代码

1.首先写一个遮罩层div&#xff0c;然后再写一个弹窗的div <!-- 遮罩层 --> <div id"cover" style"background: #000; position: absolute; left: 0px; top: 0px; width: 100%; filter: alpha(opacity30); opacity: 0.3; display: none; z-index: 2 &…

dos命令测试网络连通情况

telnet测试端口命令&#xff1a; telnet IP地址 端口号 或者 telnet 域名 端口号traceroute指令让你追踪网络数据包的路由途径&#xff0c;命令&#xff1a; traceroute ip地址

Python中字典合并的四种方法

字典是Python语言中唯一的映射类型。映射类型对象里哈希值&#xff08;键&#xff0c;key&#xff09;和指向的对象&#xff08;值&#xff0c;value&#xff09;是一对多的的关系&#xff0c;通常被认为是可变的哈希表。字典对象是可变的&#xff0c;它是一个容器类型&#xf…

jar包打开闪退

第一种方法&#xff1a; 步骤一&#xff1a;新建一个文本文档&#xff0c;输入内容"javaw -jar %1 "&#xff0c;并保存为批处理文件&#xff0c;例如"run.bat "。 步骤二&#xff1a;右键点击.jar格式的文件 &#xff0c;选择其打开方式 为上面建的run.ba…

从零开始的全栈工程师——js篇2.12(面向对象)

面向对象 Js一开始就是写网页特效&#xff0c;面向过程的&#xff0c;作者发现这样写不好&#xff0c;代码重复利用率太高&#xff0c;计算机内存消耗太大&#xff0c;网页性能很差。 所以作者就收到java和c的影响&#xff0c;往面向对象靠齐。Js天生有一个Object&#xff0c;但…

java,js获取数组最大/小值

js最小值&#xff1a; var minValue Math.min.apply(null,args[]);js最大值 var maxValue Math.max.apply(null,args[]);JDK8特性&#xff1a;java最大值&#xff08;整数数组&#xff09;&#xff1a; int[] A {6,7,8,2,1,3,4,5}; int maxVal Arrays.stream(A).max().g…

20172332 2017-2018-2 《程序设计与数据结构》第七周学习总结

20172332 2017-2018-2 《程序设计与数据结构》第七周学习总结 教材学习内容总结 第十一章 二叉查找树 1.二叉查找树&#xff1a;一种带有附加属性的二叉树。即每个结点其左孩子都要小于其父结点&#xff0c;而父结点又小于或等于其右孩子。&#xff08;左孩子<父结点<右孩…

JAVA读取本地图片并展示

代码如下&#xff1a; //读取本地图片输入流 FileInputStream inStream new FileInputStream("D:/image/123.jpg");//byte数组用于存放图片字节数据 byte[] buff new byte[inSteam.available()];inStream.read(buff); inStream.close();//设置发送到客户端的响应内…