基于React的一個簡單Todo-list
先賭為快:在線DEMO,感覺還不錯點一下star -_- ~
源碼地址:
一、已經完成的功能
1、新增選項(默認未完成)
2、完成狀態可以切換
3、當前選項可以刪除
4、全部選項選中狀態切換
5、全部個數,完成個數,未完成個數實時讀取
6、刷新狀態不變
7、雙擊可以編輯(有個坑:雙擊編輯內input的keyUp Enter保存會連帶觸發blur失去焦點保存。已解決:通過設置一個可以保存的狀態控制)
二、待完成(新增路由)
三、目錄結構
3.1、主要邏輯只涉及:Todo(父組件),TodoAdd(輸入框子組件一),TodoList(選項列表子組件二)
3.2、父子組件通過props(可以是自定義屬性、對象、回調函數)通信,每個組件都有自己的state,可以通過setState改變當前的state。
例如:新增的時候,父組件是如何知道新增了一個什么內容呢?如下:
// Todo.jsx內 //1 傳遞給子組件的回調函數,只要有心得內容傳遞過來,就更新當前的:list。list只要更新,通過props傳遞給TodoList的data就會更新,DOM就會新增一個選項列表 onAddSubmit(addTitle) { console.log("增加了:" + addTitle) let addItem = { title: addTitle, isFinished: false } this.state.list.unshift(addItem) this.setState({ list: this.state.list }) this._saveToSession() }// 通過props傳遞給子組件(等待使用)<TodoAdd onAddSubmit={this.onAddSubmit} />// TodoAdd.jsx// 2、 主站蜘蛛池模板: 齐河县| 莆田市| 广元市| 长葛市| 城口县| 施甸县| 灯塔市| 咸丰县| 昆山市| 赫章县| 巨鹿县| 崇明县| 封丘县| 烟台市| 龙泉市| 胶南市| 江山市| 顺平县| 平阴县| 揭阳市| 侯马市| 阳泉市| 电白县| 西乌| 定南县| 娱乐| 黄山市| 三门峡市| 墨玉县| 哈密市| 永靖县| 方正县| 土默特左旗| 平乡县| 富源县| 龙泉市| 建平县| 孟州市| 文成县| 宜兴市| 长岭县|