Defining Public API Methods on Components

DEX601 - Unit 6 Building Advanced Components

📄 第 423 页 🎬 视频课程

课程章节介绍

让我们来聊聊如何在Salesforce的Lightning组件中定义和使用公共API方法。这个功能非常有用,特别是当你想要让一个父组件直接调用子组件中的函数时。 首先,我们需要在子组件中定义一个公共方法。这个方法是使用``标签来声明的。在这个标签内部,我们可以定义这个方法需要的参数,这些参数是通过``标签来指定的。每个参数都可以设置类型和默认值。 例如,假设我们有一个子组件`Child.cmp`,我们想要定义一个名为`sampleMethod`的公共方法,这个方法接受一个字符串类型的参数`param1`。我们可以这样写: ```html ``` 在这个例子中,`sampleMethod`是一个公共方法,它可以在父组件中被调用。这个方法有一个参数`param1`,它的类型是`String`,并且有一个默认值`"parameter 1"`。 接下来,我们来看看如何在父组件中调用这个子组件的公共方法。首先,我们需要在父组件中引用子组件,并给它一个`aura:id`,这样我们就可以在父组件的控制器中找到它。 ```html ``` 在这个父组件中,我们有一个按钮,当点击这个按钮时,会触发父组件控制器中的`click`函数。在这个函数中,我们可以通过`aura:id`找到子组件,并调用它的`sampleMethod`方法。 ```javascript ({ click: function(component, event, helper) { var childComponent = component.find("child"); childComponent.sampleMethod("新的参数值"); } }) ``` 在这个控制器函数中,我们首先通过`component.find("child")`找到子组件,然后调用它的`sampleMethod`方法,并传递一个新的参数值。 总结一下,通过使用``,我们可以在子组件中定义公共方法,然后在父组件中调用这些方法。这种方式比使用事件更加直接和简单,特别是在父组件需要直接控制子组件行为的时候。希望这个解释对你有帮助!