2.react案例(toodlist)

发布时间:2022-06-26 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了2.react案例(toodlist)脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
import React, { component, createRef } From 'react'
class App extends Component {
    constructor(PRops) {
        suPEr(props);
        this.state = {
            list: [
                { tITle: "学习vue", done: true },
                { title: "学习vuex", done: false },
            ]
        }
        this.tempRef = createRef();  //c创建一个dom引用
    }
    delItem = item => {
        VAR list = this.state.list;  //缓存list
        var ind = this.state.list.findIndex(value => value.title === item.title);  //查找下标
        list.splice(ind, 1)   //删除
        this.setState({ list })    //更新(setState才会触发视图的更新)
    }
    addItem = () => {
        var list = this.state.list;            //缓存list
        list.unshift({ title: this.tempRef.current.value, done: false }) //添加
        this.setState({ list });              //更新视图
        this.tempRef.current.value = '';  //清除input内容
    }
    checkItem = item => {
        var list = this.state.list;            //缓存list
        var ind = this.state.list.findIndex(value => value.title === item.title);  //查找下标
        list[ind].done = !list[ind].done;
        this.setState({ list });
    }
    render() {
        return (
            <div>
                <input type="text" ref={this.tempRef} />
                <button onClick={this.addItem}>添加</button>
                <h3>正在进行{this.state.list.filter(item => !item.done).length}</h3>
                {
                    this.state.list.filter(item => !item.done).map(item => <div classname='item' key={item.title}>
                        <input type="checkbox" checked={item.done} onChange={this.checkItem.bind(this, item)} />
                        <span>{item.title}</span>
                        <button onClick={this.delItem.bind(this, item)}>X</button>
                    </div>)
                }
                <h3>已完成{this.state.list.filter(item => item.done).length}</h3>
                {
                    this.state.list.filter(item => item.done).map(item => <div className='item' key={item.title}>
                        <input type="checkbox" checked={item.done} onChange={this.checkItem.bind(this, item)} />
                        <span>{item.title}</span>
                        <button onClick={this.delItem.bind(this, item)}>X</button>
                    </div>)
                }
            </div>
        )
    }
}
export default App;

运行完代码效果如下F1a;

2.react案例(toodlist)

当点击 学习vue复选框正在进行里的 学习vue会出现在 已完成里面。点击右边X则会删除

脚本宝典总结

以上是脚本宝典为你收集整理的2.react案例(toodlist)全部内容,希望文章能够帮你解决2.react案例(toodlist)所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。