课程章节介绍
好,同学,我们来看这一页Slide,它讲的是一个叫 ,hotelResponse, 的自定义Lightning类型,而且它用到了,COLLECTION渲染器,。这个可以说是和我们之前介绍过的“飞行示例”最大的一个区别。
先回忆一下,之前的飞行示例,组件通常是把整个输出当成一个整体来渲染。但在这个酒店的场景里,我们需要展示的是,一个酒店列表,,里面有很多家酒店,对吧?那每个酒店都应该是一张独立的卡片。这时候,COLLECTION渲染器就派上用场了。
看这边,,renderer.json,文件里,它把组件的Overrides配置包在了一个叫 `"collection"` 的键里面。这行配置就是在告诉系统:“嘿,不要把我的LWC组件当成一个整体去渲染,而是要把我,作用在列表里的每一个单独项目上,”。简单说,就是列表里的每一项,都会单独调用一次我们的LWC组件来显示。
那再来看,schema.json,,这个文件里引用的类型,是一个针对,单个酒店,的Apex类。也就是说,它定义了每个酒店项目的数据结构是什么,比如酒店名称、星级、价格这些字段都来自这个Apex类。
接着,在,LWC的meta.html,里,我们会把源类型设置为 `lightning__listType`,这表示这个组件天生就是用来处理列表数据的。同时,`itemTypeName` 这个属性指向我们刚才说的那一个自定义Lightning类型,这样组件就知道列表里每一项对应的是什么了。
然后到了,HTML模板,里,大家看,模板就是在`value`这个数组上做了一次迭代。每一次循环,就生成一张酒店卡片。卡片上呢,我们放了位置图标、星级评分、房间的详细信息,还有房价和折扣的百分比,整体看起来很直观也很美观。
最后,,JavaScript文件,就非常精简了。组件只是通过 `@api value` 这个属性接收外部传进来的数据,一点都不复杂,因为逻辑主要都在标记里展示数据,不需要再去额外处理什么。
所以,总结一下这个小要点:,hotelResponse, 通过COLLECTION渲染器,告诉平台要对列表里每一项分别用LWC组件渲染,而不是把它当成一个整体。这样就能轻松实现列表里每一个酒店都有独立卡片的显示效果。这和飞行示例直接渲染单个记录的方式,区别就在这里了。
好,这一块内容就讲完了,下一张Slide我们再继续深入。