Compose Components — Slots vs Data

DEX475 - Composition

📄 第 91 页 🎬 视频课程

课程章节介绍

同学们,我们来看一下这一页的内容:Lightning Web Components 中,有两种根本不同的方法来组合你的组件。 第一种,我们叫它,声明性方法,,也就是用插槽。什么意思呢?就是父组件直接在它的模板里,把孩子组件写进去,就像搭积木一样。父组件写上标签,把孩子放进去,然后利用插槽的变更来管理孩子的生命周期。这特别适合做布局和分组,比如闪电按钮组`lightning-button-group`,你直接在内部写一堆按钮,它帮你排列好。消费者一看模板就知道,“哦,这里放的是什么组件”。 第二种,是,数据驱动的方法,。这种方法里,父组件给子组件传递的是配置数据,一个 JavaScript 对象。子组件自己不决定内容,它只负责对父组件传过来的数据变化做出反应。循环迭代、展示大量内容时特别好用。典型的例子是`lightning-datatable`,你给它一个很大的数据数组和列定义对象,它就把表格渲染出来了。 关键区别在哪呢?你要选哪种方法,就问自己一个问题:消费者是在决定,“哪些组件放在这里”,?那就要用声明性的插槽合成。还是消费者在描述,“哪些数据来描述这个东西”,?那就要用数据驱动的合成。前者关心标记和结构,后者关心配置和状态。用对方法,代码会更清晰,也更符合框架的设计思路。 拿小例子来说,你做工具栏,让用户自己放按钮,用插槽最直观。但你做一个信号灯,颜色和闪烁频率全是数据控制的,那就用数据驱动,传个配置对象进去就好。理解这个选择,你就能写出更好维护的 Lightning Web Components。

关键词

LWC Lightning Web Components Salesforce