Aura:id and component.find() vs data-id and querySelector()

DEX602 - Unit 8 Lightning Web Components for Aura Developers

📄 第 437 页 🎬 视频课程

课程章节介绍

让我们来聊聊Aura和LWC中如何找到和操作组件。 在Aura框架中,如果你想在JavaScript中找到一个特定的组件,你会在.cmp文件中给这个组件一个`aura:id`。比如,你可能会写``。然后,在你的控制器或帮助器中,你可以使用`component.find('myButton')`来获取这个按钮的引用。这个方法非常直接,你只需要知道`aura:id`,就能找到对应的组件。 现在,我们来看看LWC(Lightning Web Components)。在LWC中,情况有点不同。这里我们不使用`aura:id`,而是使用标准的DOM查询方法。你可以在HTML中给元素添加一个`data-*`属性,比如`data-id="myButton"`。然后,在JavaScript中,你可以使用`this.template.querySelector('[data-id="myButton"]')`来找到这个元素。这种方法更加灵活,因为你可以使用任何选择器,不仅仅是`data-*`属性。 需要注意的是,在LWC中,尽量避免使用`id`属性来查找元素,因为LWC框架可能会覆盖这些`id`,导致你的代码不稳定。所以,使用`data-*`属性是一个更安全、更可靠的选择。 总结一下,Aura中使用`aura:id`和`component.find`来定位组件,而LWC中则推荐使用`data-*`属性和`querySelector`等DOM方法来达到同样的目的。希望这能帮助你更好地理解这两种框架中的组件查找方式!