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

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;



http://www.kler.cn/a/573071.html

相关文章:

  • Go 语言中常用的爬虫框架和工具库
  • 【不是广告】华为昇腾的一小步,Pytorch的一大步
  • 权限管理Vue实现
  • kotlin高级用法总结
  • 3.RabbitMQ管理
  • 什么是XSS,什么是CSP,什么是gevent
  • docker 常用容器启动 docker-compose.yml 配置文件详解
  • IP离线库技术解析:实现高效数据处理能力
  • 【Qt】Qt Widgets和QML(Qt Quick)开发界面的区别
  • MySQL SyntaxErrorException SELECT list is not in GROUP BY 报错解决
  • 如何在Android中实现服务(Service)
  • 使用 CMake 构建 Qt 动态库模块
  • Tick数据20241224
  • 人机交互革命:从触屏到脑波的13维战争
  • grpc工具使用
  • 剑指 Offer II 060. 出现频率最高的 k 个数字
  • 基于RKNN的嵌入式深度学习开发(2)
  • 第3章 nmap网络映射器(网络安全防御实战--蓝军武器库)
  • 大语言模型中温度参数(Temperature)的核心原理
  • 汽车免拆诊断案例 | 2023款丰田雷凌汽油版车行驶中偶尔出现通信故障