• ToDolist 增删改查


    ToDolist 实现的主要功能有 

    增加数据,

    修改数据

    删除数据

    查询数据

    下面是HTML页面的代码

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <meta http-equiv="X-UA-Compatible" content="ie=edge">
      <title>Document</title>
    </head>
    <body>
      <div id="root"></div>
    </body>
    </html>

    下面是index的代码:

    import React from 'react';
    import ReactDOM from 'react-dom';
    import Todolist from './Todolist'//连接ToDolist文件
    
    ReactDOM.render(<Todolist></Todolist>, document.getElementById('root'));

    还有一个ToDolist.js的代码

    import React from 'react'
    class Todolist extends React.Component{
        constructor(){
            super()
            this.state={
                Mylist:[],
                MyInput:''
            }
        }
    
        // 页面加载前执行
        UNSAFE_componentWillMount(){
    
            var arry=window.localStorage.getItem('MyList')
            if(arry==null||arry==''){
                //这个if判断是判断arr是否为空,如果为空的话,就把这个arr变为数组 
                arry=[]
            console.log(arry)
            }else{
                //这里用的是分隔字符串,然后把分隔后的元素加到arr数组里面
                arry=arry.split(',')
            }    
            this.setState({
                // 这一步是把arry数组传给Mylist
                Mylist:arry
            })
        }
        //添加元素
        handleclick(){
            // 这一步是获取文本框的value值
            var val = this.refs.MyInput.value
            this.setState({
                Mylist:[...this.state.Mylist,val]
            },()=>{
                window.localStorage.setItem('MyList',this.state.Mylist)
            })
            // 这一步是当按下按钮的时候清空文本框里面的内容
            this.refs.MyInput.value=this.state.MyInput
        }
    
        //全部删除
        removeClick(){
            //这一步就比较简单了,直接让Mylist这个数组为空,就实现了全部清空
            this.setState({
                Mylist:[]
            },()=>{
                window.localStorage.setItem('MyList',this.state.Mylist)
            })
        }
        //删除其中的一个
        deleteOne(e){
            //这一步是通过找到按钮id,然后赋值给num,
            var num =e.target.id
               var arr=[...this.state.Mylist.splice(num,1)]//这一步是通过截取数组然后把里面的内容重新赋值给arr
               console.log(arr)
                this.setState({
                    Mylist:[...this.state.Mylist]
                },()=>{
                    window.localStorage.setItem('MyList',this.state.Mylist)
                })
        }
        handkeyclick(e){
            if(e.keyCode==13){
                //这一步是判断键盘按下的是否为enter键,如果按下的是enter键就执行此函数
                this.handleclick()
            } 
        }
        //修改
        upDate(i){
            var list=this.state.Mylist
            let rel =prompt('请输入你要修改的内容')//这一步是通过prompt属性的返回值修改
            if(rel !=null){  
                //这一步是先截取,然后再把修改后的内容加到数组里面
                list.splice(i,1,rel)
                this.setState({
                    Mylist:list
                },()=>{
                    window.localStorage.setItem('MyList',this.state.Mylist)
                })
            }
        }
        //渲染
        render(){
            return (
                <React.Fragment>
                    <input type="text" ref='MyInput' onKeyDown={this.handkeyclick.bind(this)}></input><button onClick={this.handleclick.bind(this)}>添加</button>
                    <ul>
                        {this.state.Mylist.map((m,i)=>{ return <li key={i}>{m}<button id={i} onClick={this.deleteOne.bind(this)}>dele</button><button onClick={this.upDate.bind(this,i)}>修改</button></li>})}
                    </ul>
                    <button onClick={this.removeClick.bind(this)}>清空</button>
                </React.Fragment>
            )
        }
    }
    // 向外暴露自己
    export default Todolist

    以上是我对Todolist的理解,如有不足,还请指出。

  • 相关阅读:
    yolo v2使用总结
    Oozie 实战之 shell
    Oozie 之 sqoop 实战
    Oozie 实战之 Hive
    Oozie wordcount实战
    Oozie 安装及 examples app 的使用
    Oozie是什么
    Flume使用(案例分析)
    一个数据仓库的设计架构
    Flume是什么
  • 原文地址:https://www.cnblogs.com/yong-2000/p/12092364.html
Copyright © 2020-2023  润新知