zoukankan      html  css  js  c++  java
  • React组件开发经典案例todolist

    点开查看代码
    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <title>todolist2</title>
        <link rel="stylesheet" href="">
        <script type="text/javascript" src="../build/react.js"></script>
        <script type="text/javascript" src="../build/react-dom.js"></script>
        <script type="text/javascript" src="../build/browser.min.js"></script>
    </head>
    <body>
        <div id="box">
            
        </div>
        <script type="text/babel">
            var Todolist=React.createClass({
                    //初始化状态
                    getInitialState:function(){
                        return({
                            collection:[]})
                    },
                    render:function(){
                        return(
                            <div>
                                <input type="text" name="" ref="yzxText"/>
                                <input type="button" name="" value="add" onClick={this.handleClick}/>
                                <List items={this.state.collection} delEvent={this.DelClick}>
                                </List>
                            </div>
        
                        )
                    },
                    handleClick:function(){
                        this.state.collection.push(this.refs.yzxText.value);
                        this.setState({
                        collection: this.state.collection
                        })
                    },
                    DelClick:function(index){
                        this.state.collection.splice(index,1);
                        this.setState({
                        collection: this.state.collection
                        })
                    }
            });
            var List=React.createClass({
            render:function(){
            var _this=this;
                return(
                        <ul>
                        {
                          this.props.items.map(function(item,index){
                            return    <li key={index}>{item}
                                    <input type="button" name="" value="del" onClick={
                                    _this.handleDelclick.bind(_this,index)}/>
                                </li>
                             })
                        }
                        </ul>
                   
                ) 
            },
            handleDelclick:function(index){
                this.props.delEvent(index);
            }
            })
            ReactDOM.render(<Todolist></Todolist>,document.getElementById('box'));
        </script>
    </body>
    </html>

     *此案例重点在React的父子组件之间数据的传递

    *父组件影响子组件时,通常通过设置状态,子组件设置一个属性来接收这一状态的值。

    *子组件要影响父组件时,通过改变自身属性(这里的属性值为一个函数,这样就和父组件产生了联系),这个函数里给父组件设置新的状态的值

    *在动态获取数据渲染dom时,通常需要通过map映射数组,return结果,这个结果通常就是我们需要映射出的节点。这里this指向是window,而不是组件本身,所以通常需要在渲染时先保存this。

    *要获取事件的索引值并对一个函数传参但不执行这个函数时,在方法名后.bind(_this,index)来改变this的指向并且给函数传入index参数。

  • 相关阅读:
    [轉]推荐一个C#代码混淆器 .NET Reactor
    [转贴]什么是ORM
    十个极其有用的在线网站设计工具
    .NET Windows客户端程序在代理环境下的相关设置
    记4月28成都软件技术沙龙活动
    2010年仲夏成都.NET俱乐部活动——深度.NET
    在MOSS 2010上配置PDF的搜索【简译】
    在Windows 7中遇到android 模拟器出错,emulator: ERROR: unknown virtual device name的正确解决办法
    Visual Studio LightSwitch初体验和定位看法
    在.NET上进行线性代数等科学计算
  • 原文地址:https://www.cnblogs.com/BlueCc/p/6511490.html
Copyright © 2011-2022 走看看