Skip to content

运行环境、模板与组件结构:练习答案 ​

本章答案应对照每节的输入、状态转移、清理和失败证据完成;关键检查包括:请求是否可取消、provider 是否隔离、模板身份是否稳定、SSR 是否按请求隔离,以及测试是否能在删除清理后失败。

组件输入、输出与内容投影 ​

参考实现:input.required<string>() 只读接收父值,output<string>() 发送新值;子组件不写入输入对象。测试应断言初始文本、点击后的输出次数和禁用时输出次数为零。把 output 改成直接调用父服务虽然能“跑通”,但破坏了可复用组件的边界。

模板表达式与控制流 ​

@for 的答案必须使用稳定 track item.id。输入焦点实验中,重排同一 id 后节点应复用;去掉 track 或使用 index 时,节点可能被重建,焦点和局部 DOM 状态随位置移动。loading、empty、error 应由互斥条件表达,不能让旧错误和新列表同时显示。

CLI 工作区与构建配置 ​

CLI 题的验收顺序是 ng test --watch=false 后 ng build;开发服务器可用不代表 production bundle 可发布。删除一个 provider 或模板绑定时,记录是依赖注入、模板编译还是 TypeScript 检查失败,并恢复配置后再次运行。

用心记录每一步成长