Exposing an Apex Method to a Lightning Web Component

DEX470 - Unit 3:Work with Lists of Records

📄 第 51 页 🎬 视频课程

课程章节介绍

让我们来聊聊如何将Apex方法暴露给Lightning Web组件。首先,想象一下,你有一个非常强大的工具,这个工具可以帮助你从Salesforce的后端获取数据或者执行一些复杂的操作。这个工具就是Apex方法。但是,为了让你的Lightning Web组件能够使用这个工具,我们需要做一些设置。 首先,我们需要确保这个Apex方法可以被Lightning Web组件调用。为此,我们需要给这个方法加上一个特殊的标签,叫做`@AuraEnabled`。这个标签就像是给方法贴上一个“我可以被调用”的标签,告诉Salesforce:“嘿,这个方法可以被前端组件使用哦!” 接下来,这个方法必须是“公共的”或者“全局的”。这意味着它不仅仅是在它所在的类内部可用,而是可以被其他类或者组件调用。你可以把它想象成一个公共图书馆,任何人都可以进来借书。 此外,这个方法还必须是“静态的”。静态方法意味着你不需要创建一个类的实例就可以调用它。这就像是有一个自助服务机,你不需要找服务员,直接就可以使用它。 现在,如果我们想让这个方法更高效,我们还可以给它加上一个缓存的功能。通过设置`@AuraEnabled(cacheable=true)`,我们可以让这个方法的结果被缓存起来。这样,如果多次调用这个方法,Salesforce就不需要每次都去后端重新获取数据,而是可以直接使用缓存的数据,这样就大大提高了性能。 但是,这里有一个重要的注意事项:如果这个方法被标记为可缓存的,那么它就不能修改任何数据。也就是说,它只能用来获取数据,不能用来改变数据。这就像是你可以从图书馆借书,但是你不能在书上乱涂乱画。 最后,为了确保这个方法可以通过`@wire`服务在Lightning Web组件中使用,我们需要确保它遵循上述的所有规则。 总结一下,要让Apex方法可以被Lightning Web组件调用,我们需要: 1. 使用`@AuraEnabled`注解。 2. 确保方法是公共的或全局的。 3. 保持方法是静态的。 4. 如果需要提高性能,可以设置`cacheable=true`,但记住这样的方法不能修改数据。 这样,你的Lightning Web组件就可以轻松地调用后端的Apex方法,获取或处理数据了。希望这个解释对你有帮助!