当前位置: 首页 > news >正文

react 编写一个待办事项,函数优化,组件传值

待办事项 

Import react {component} from ‘react’

Class TodoList extend component{

          Costructor(props){

                Super(props);

                        This.state={

                                Value=””,

                                List:[]

                        }

                }

        getValue(e){

                Let value=e.target.value;

                This.setState({

                        value

                })

        }

        addValue(){

                This.setState({

                        List:[...this.state.list,this.state.value],

                        Value:””

                })

        }

        deletValue(index){

                Let list=this.state.list.splice(index,1);

                This.setState({

                        List

                })

         }

        Render(){

                Return(

                        <div>

                                <div>

                                        <input

                                                value={this.state.value}

                                                 onChange={this.getValue.bind(this)} />

                                        <button onClick={this.addValue.bind(this)} >提交</button>

                                        </div>

                                <div>

                                {

                                        this.state.list.map((item,index)=>{

                                                Return (<div key={index}  

                                                                onClick={this.deletValue.bind(this,index)}

                                                                >

                                                                        {item}

                                                                </div>

                                                            )

                                        })

                                }

                                </div>

                        </div>

                )

           }

  }

export default TodoList;

 优化部分

Import react {component} from ‘react’
Class TodoList extend component{
  Costructor(props){
    Super(props);
    This.state={
        Value=””,
        List:[]
    }
    This.getValue=this.getValue.bind(this);
    This.addValue=this.addValue.bind(this);
    This.deletValue=this.deletValue.bind(this);
    This.showList=this.showList.bind(this);
    }

    getValue(e){
        Let value=e.target.value;
        This.setState({
            value
        })
    }
    addValue(){
        This.setState({
            List:[...this.state.list,this.state.value],
            Value:””
        })
    }
    deletValue(index){
        Let list=this.state.list.splice(index,1);
        This.setState({
            List
        })
    }
    showList(){
        Return (
            this.state.list.map((item,index)=>{
                Return (    
                            <div key={index}  
                                onClick={()=>this.deletValue(index)}>
                                {item}
                            </div>
                        )
                    })
                )
   }
    Render(){
        Return(
            <div>
                <div>
                    <input 
                        value={this.state.value}
                         onChange={this.getValue} />
                     <button onClick={this.addValue} >提交</button>
                </div>
                <div> 
                {
                    This.showList()
                }
                </div>

            </div>
          )
        }
    }
export default TodoList;

 父子组件传值

Import react {component} from ‘react’;
Import TodoItem from ‘./TodoItem;

    Class TodoList extend component{
          Costructor(props){
            Super(props);
            This.state={
                 Value=””,
                 List:[]
            }
            This.getValue=this.getValue.bind(this);
            This.addValue=this.addValue.bind(this);
            This.deletValue=this.deletValue.bind(this);
         }

        getValue(e){
            Let value=e.target.value;
            This.setState({
                value
            })
        }
        addValue(){
            This.setState({
                List:[...this.state.list,this.state.value],
                Value:””
            })
        }
        deletValue(index){
            Let list=this.state.list.splice(index,1);
                This.setState({
                    List
                })
        }
    Render(){
        Return(
            <div>
                <div>
                    <input 
                            value={this.state.value}
                                 onChange={this.getValue} />
                                <button onClick={this.addValue} >提交</button>
                </div>
                <div> 
                {
                    this.state.list.map((item,index)=>{
                        Return (
                            <TodoItem  
                                content={item}
                                index={index} 
                                deletValue={this.deletValue.bind(this)}/>
                        )
                    })
                }
                </div>
            </div>
        )
    }
}
export default TodoList;

//下面是TodoItem子组件编写

Import react {component} from ‘react’;
    Class TodoItemextend component{
          Costructor(props){
            Super(props);
            This.delete=this.delete.bind(this)
          }
    Delete(){
        Let deletIndex=this.props.index;
        This.props.deletValue(deletIndex)
    }
    Render(){
        Return(<div onclick={this.delete} > {this.Props.content} </div>)
    }
 }
export default TodoItem;


相关文章:

  • openssl下aes128算法gcm模式加解密运算实例
  • MyBatis-Plus 元对象处理器 @TableField注解 反射动态赋值 实现字段自动填充
  • logback日志输出配置范例
  • 基于第三方SDK的Windows平台全功能RTMP|RTSP直播播放器深度解析
  • C++20 中的 `consteval` 和 `constinit` 特性
  • Bash Shell 比较注入漏洞:分析与利用
  • 深入解析:域名转换成 IP 地址的多种方式
  • Element Plus使用(五)
  • Java 设计模式:软件开发的精髓与艺
  • 机器学习工程师技术图谱和学习路线
  • C++特殊类设计
  • 18、深拷贝与浅拷贝的区别【中高频】
  • 基于springboot+vue的线上考试系统的设计与实现
  • 使用Java构建高效的Web服务架构
  • 爬虫系列之发送请求与响应《一》
  • 【音视频】VLC播放器
  • 在 Windows 上为流体/结构工具设置 Ansys 远程求解管理器 (RSM):分步指南
  • 【计算机网络入门】初学计算机网络(七)
  • 算力100问☞第66问:如何降低大模型的训练成本?
  • 计算机网络:自顶向下方法——第四、五章 网络层
  • 安庆市住房和建设厅网站首页/市场运营和市场营销的区别
  • 网站开发员纵向发展/长沙网络推广只选智投未来
  • 阿里巴巴怎么做企业网站/市场推广方案模板
  • 做设计网站的工作怎么样/今日头条官网登录入口
  • 网络广告营销概念/优化师和运营区别
  • 网站建设 建站知识/网络推广引流有哪些渠道