zoukankan      html  css  js  c++  java
  • 【React】react学习笔记07-综合应用todoList

      todoList是react学习的一个祖传Demo,估计学过的都写过哈哈。这个demo比较简单,包含了三个组件,然后整合了之前学到的所有东西,只要能够

    自己把这个demo写出来,那么基本上就可以做项目了。

      博主上半年遇到个中后台项目,React框架,之前也从没见过React是个啥玩意,于是找了个视频看完了第一集,TodoList,比这个稍微多一个删除功能,

    然后照着自己写了一个。之后就开始硬着头皮写项目了哈哈哈哈,现在已经有9个模块了,说实话我现在还不太敢直视当时写的东西,好在虽然代码写的丑,

    但是很少有Bug哈哈。

      直接上Demo了:

    组件结构:

    页面效果:

    点击添加会将输入框中的内容添加到列表中:

    代码:

    <!DOCTYPE html><html>
    <head>
        <meta charset="utf-8" />
        <title>React Tutorial</title>
    
    </head>
    <body>
        <!--react基础库-->
        <script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.14.3/react.js"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.14.3/react-dom.js"></script>
        <!--bable转换库,ES语法以及Jax语法的转换-->
        <script src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.23/browser.min.js"></script>
    
        <div id="content"></div>
    
        <script type="text/babel">
            //定义父组件
            class Component extends React.Component{
                //构造函数,在初始化组件的时候会执行
                  constructor(props){
                      super(props);
                      this.state={
                          todoList: ['AAA','BBB','CCC']
                      }
                      this.addTodoList=this.addTodoList.bind(this)
                  }
                //render会进行页面的渲染,当state中数据更新或者发送ajax等事件被监听到都会触发render的刷新
                  render(){
                      return(
                          <div>
                            <h1>TODO LIST</h1>
                              <Add addTodoList={this.addTodoList}/>
                              <List todoList={this.state.todoList} />
                          </div>
                      );
                  };
                addTodoList(newTodoList){
                    const todoList = this.state.todoList;
                    //todoList.unshift(newTodoList);
                    this.setState({
                        todoList: [...todoList,newTodoList]
                    })
    
    
                }
    
            }
            //定义子组件
            class Add extends React.Component{
                constructor(props){
                    super(props);
                    //固定写法指向this,最好使用箭头函数的方式
                    this.addTodoList=this.addTodoList.bind(this);
                }
    
                render(){
    
                    return(
                        <div>
                            <input type="test" ref={input =>this.newTodoListVal=input}/>
                            <button onClick={this.addTodoList}>add</button>
                        </div>
                    );
                }
                addTodoList(){
                    //获取input的值
                    const val = this.newTodoListVal.value;
                    if(!val){
                        //空串布尔值为false
                        return;
                    }
                    //调用传入的函数引用
                    this.props.addTodoList(val);
                    this.newTodoListVal.value='';
                }
    
            }
            //定义子组件
            class List extends React.Component{
                constructor(props){
                    super(props);
                }
    
                render(){
    
                    return(
                        <ul>
                            {
                                //遍历数组
                                this.props.todoList.map((todo,index)=> {return <li key={index}>{todo}</li>})
                            }
                        </ul>
                    );
                }
    
            }
            ReactDOM.render(<Component />,document.getElementById("content"));
    
    
        </script>
    
    
    </body>
    </html>

      

  • 相关阅读:
    lock,Monitor,Mutex的区别
    byte[]数组和int之间的转换
    接口测试总结
    python接口自动化测试(七)unittest 生成测试报告
    python 接口自动化测试(六)使用unittest 批量用例管理
    python 接口自动化测试(五)其他-认证&代理&超时配置
    python 接口自动化测试(四)cookie&session
    接口自动化测试 (三)request.post
    python 接口自动化测试二(request.get)
    python接口自动化测试(c测试环境的准备)
  • 原文地址:https://www.cnblogs.com/the-fool/p/11158921.html
Copyright © 2011-2022 走看看