课程章节介绍
同学们,我们现在来看一下Lightning Web Components里一个非常强大的特性——有范围的插槽,也就是scoped slots。它让我们在处理复杂的数据绑定时,有了更大的灵活度。
首先,在一个组件里,你可以定义多个有名称的作用域插槽,每个插槽都可以有自己的数据源,互不干扰。也就是说,每个插槽都能传递不同的数据给使用它的父组件。当然,多个插槽也可以绑定到相同的那个数据,这没问题。但要注意,单个插槽名称,也就是同一个名字的插槽,你不能试图给它绑定上不同的数据源——如果你那样写,编译器会直接报错。
还有一点很关键,标准插槽和作用域插槽是两种不同的东西。你不能在同一个组件里,对同一种类型——也就是默认插槽或者同名插槽——混用这两种。简单说,如果子组件里某个插槽被定义成标准插槽,而父组件里却用了作用域插槽的写法来对应它,那这个插槽根本不会渲染。所以,父组件和子组件必须对插槽的类型达成一致,大家都说好它是标准插槽,或者它就是作用域插槽。
作用域插槽还能嵌套,这可是个真正厉害的地方。内部的、被嵌套的作用域插槽,不仅可以访问它自己直接收到的数据,还能访问到外层所有作用域插槽传下来的数据。这种模式非常适合在表格行和单元格这样的场景里,你可以按每个单元格去做自定义的渲染,非常灵活。
最后,作用域插槽本身可以同时引用两种数据来源:一种是来自父组件的组件绑定数据,另一种是来自子组件通过插槽传给它的作用域绑定数据。所以,数据绑定的能力就非常全面了。
简单总结一下,作用域插槽就像是一个数据传递的高级通道,让我们能在组件间完成既结构化又个性化的内容展示。好,这部分我们就讲到这儿。
关键词
LWC
Lightning Web Components
Salesforce