课程章节介绍
同学们,今天我们来聊聊 Lightning Web Components 里一个非常实用又优雅的概念——插槽合成。
想象一下,你要搭一个组件,比如手风琴菜单,里面有很多可以展开收起的部分。你是不是希望,直接在手风琴标签里丢进去几个部分,它就自动拼成一个完整的菜单?对,这就是插槽的妙用。
简单说,插槽就像一个占位符,你可以把内容从父组件“传送”到子组件的指定位置。它有两种:默认插槽和命名插槽。
默认插槽呢,就是你不给它起名字,所有放在组件标签中间的内容,都会自动跑进这个默认的位置。比如你写 `` 里面放好几个 ``,这些 section 就会自动进入手风琴的默认插槽,渲染成一个个可折叠项。面包屑组件也是一样,你把面包屑项放在它的标签中间,它就帮你排好。
可有时候,一个组件想接收多个不同类型的内容,比如闪电卡片组件。它有主内容区,还要有标题、操作按钮、页脚。这时候默认插槽就不够用了。于是我们有了命名插槽,给每个插槽起个名字,比如 “title”、“actions”、“footer”。你在父组件里写标签时,加上 `slot="actions"`,就能把按钮精确地塞到卡片底部的操作区。
还有一个关键点,当插槽里的内容发生变化,比如动态添加或移除元素,组件怎么知道呢?这就是 `slotchange` 事件的作用。基本组件监听这个事件,就能检测并及时响应插槽内容的更新。所以你不用手动写一堆属性去配置组件里该放什么,直接用标签组合,更直观更好维护。
所以记住我们的推荐:能用插槽的组合,就尽量别用属性拼凑。插槽让组件的合成就像搭积木,清晰又好懂,维护起来也轻松。好了,这节课就到这里,我们下次再见!
关键词
LWC
Lightning Web Components
Salesforce