课程章节介绍
同学们,今天咱们来看一个非常实用的综合性例子,它把动态组件的四个关键指令放在一起协同工作。这样你就知道怎么在实际项目里灵活切换和配置组件了。
首先,这四个指令分别是:`lwc:is` 用来指定要渲染哪个组件的构造函数,`lwc:spread` 负责把动态属性一股脑儿传给子组件,`lwc:on` 专门绑定自定义事件的处理程序,还有一个是标准 HTML 里的 `onclick`,咱们用它来做切换按钮,控制哪个组件显示。
这个例子的精妙之处在于用了两个 getter,根据当前加载的组件不同,动态返回不同的配置。一个叫 `childProps`,它会判断:如果现在是组件 A,就返回一套属性;如果是组件 B,就返回另一套属性。另一个是 `eventHandlers`,它把不同的自定义事件名——比如 childA 派发的 `customEventA`、childB 派发的 `customEventB`——分别映射到各自对应的处理函数上。
切换动作由一个叫 `switcherElement` 的方法完成,它做的事情就是在两个组件的构造器之间来回变。每当你点击按钮,构造器一变,LWC 引擎就会自动把旧的组件从 DOM 里移除,然后根据新的构造器实例化新组件,同时把 getter 里准备好的属性和事件处理程序准确应用上去。新组件挂载后会触发 `connectedCallback`,从里面抛出事先定义好的自定义事件,父组件就能收到并做出响应了。
这样一来,我们就可以用一个简单的模式完成“动态加载不同组件,并且让每个组件携带自己需要的属性和监听专属的事件”,整体代码既干净又灵活。这个示例帮你把动态组件的核心思想串了起来,以后遇到需要按条件展示不同组件并传不同参数、响应不同事件的场景,直接套用这套逻辑就行。
关键词
LWC
Lightning Web Components
Salesforce