一个todolist基本的功能点包括:
- 点击复选框标记完成或者未完成,且相应的文字出现删除线
- 从列表中移除item
- 添加item
首先它是由todolist title 、todolist、和addtodo三部分组成。由于todolist title 和addtodo比较简单,在这里只将todolist拆分成组件。
创建一个ListItem组件。含有一个render方法
class ListItem extends Component {
render() {
return (
<ul>
{
this.props.data.map(element => {
return (
<li className="listItem" key={element.name}>
<input type="checkbox"/>
<span>{element.name}</span>
<button className="delete">删除</button>
</li>
)
})
}
</ul>
)
}
}
export default ListItem
this.props.data是父组件传下来的一个list。遍历该list的每一项渲染出来。(注:上面代码体现了 JSX 的基本语法规则:遇到 HTML 标签(以 < 开头),就用 HTML 规则解析;遇到代码块(以 { 开头),就用 JavaScript 规则解析。)
此时一个todo的list组件就封装好了,export default出去,让需要的去组件使用。
在父组件TodoList中使用该ListItem组件。
import ListItem from './ListItem'
class TodoList extends Component {
render() {
return (
<div className="reactTodoList">
<header className="header">React todo list</header>
<ListItem data={this.state.list} />