Todo

学React和Angular有一段时间了,想检验一下学习的成果,就拿Todo这个最简单的例子练个手吧

React

组件化

一个container component,里面包含了TodoForm,TodoList和Footer三个组件

状态管理

Todo的状态管理不复杂,所以没有使用redux,就用原生的state来写就好。三个子组件通过lifting state up,来修改container component中的State
state={todos:[{id:string,title:string,completed:boolean}],filter: number }

Data Binding

因为要显示Todo List,所以会用到List。React规定,List item必须要定义key。我要把一个数组绑定到List上,默认的Key就是数组的index,但是这样做后面发现其实是有问题的。后来就在todo的state中加上了一个id,每次创建一条todo时生成一个unique的id

Event Binding

todo程序要实现一个效果,就是鼠标放到一条todo上时,显示delete按钮,移开时不显示。一开始用onMouseOver/onMouseOut有问题,好像会跟delete按钮的事件冲突;然后用onMouseEnter/onMouseLeave,解决了冲突的问题,但是当配合filter使用时,还是有问题。
最后用了CSS的hover来解决

CSS

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容