todoMVC

<div id="example"></div>

<script type="text/babel">

var ToDoInput =React.createClass({

handleAdd(){

var msg =this.refs.elInput.value;

//        console.log(msg);

        this.refs.elInput.value ='';

this.props.funAdd(msg);

},

render(){

return <div>

<input ref="elInput" type="text"/>

<button onClick={this.handleAdd}>add</button>

</div>

}

})

var ToDoItem =React.createClass({

handleDelete(){

var i =this.props.valIndex;

//        console.log('删除的下标',this.props.valIndex);

        this.props.funDelete(i);

},

render(){

return <li>

<button

                onClick={this.handleDelete}                >delete</button>

<span>{this.props.valVal}</span>

</li>

}

})

var ToDoList =React.createClass({

render(){

return <ul>

{

this.props.valList.map(

(value,index)=>{

//                console.log(value,index);

                return <ToDoItem

                    funDelete={this.props.funDelete}                    valVal={value}                    valIndex={index}                    key={index}                    >

</ToDoItem>

}

)

}

</ul>

}

})

var ToDoBox =React.createClass({

getInitialState(){

return {

list:[]

}

},

handleDelete(i){

var nowList =this.state.list;

nowList.splice(i,1);

this.setState(

{list:nowList}

)

},

handleAdd(msg){

var nowList =this.state.list;

nowList.push(msg);

this.setState(

{list:nowList},

()=>{

//            console.log('异步',this.state.list);

          }

)

},

render(){

return <div>

<ToDoInput funAdd={this.handleAdd}/>

<ToDoList

                funDelete={this.handleDelete}                valList={this.state.list}            />

</div>

}

})

ReactDOM.render(

<ToDoBox></ToDoBox>,

document.getElementById('example')

)

</script>

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容