TypeScript-Todos案例
TypeScript-Todos案例
RamsayiTS + React 实现 todos 案例
功能演示
- 展示任务列表
- 添加任务
父组件:App
子组件:TodoAdd 、TodoList
展示任务列表
思路
使用状态提升
(为父组件提供状态,通过 props 传递给子组件)来实现 父 → 子 通讯。
步骤
- 为父组件 App,提供状态(任务列表数据)和类型
- 为子组件 TodoList 指定能够接收到的 props 类型
- 将任务列表数据传递给 TodoList 组件
优化
使用类型声明文件,实现类型共享。
- 创建 todos.d.ts 文件
- 将公共的类型移动到 todos.d.ts 文件中,并导出
- 在用到该类型的组件(App、TodoList)中导入这些类型
添加任务
思路
子组件获取到文本框的值,通过 子 → 父 通讯 将文本框的值传递给父组件。然后,在父组件中将任务添加到状态数据中。
步骤
- 为子组件添加状态和属性及其类型:
- 状态:文本框的值
- 属性:回调函数,接收一个 string 类型的参数
- 通过
受控组件
方式获取到文本框的值 - 在子组件文本框按下回车键时将数据传递给父组件
- 父组件接收子组件传递过来的任务名称(文本框的值)
- 将任务添加到父组件的状态数据中
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果