Public Properties — @api Decorator

DEX475 - Fields, Properties, and Attributes

📄 第 99 页 🎬 视频课程

课程章节介绍

同学们,今天我们来聊聊Lightning Web Components里一个非常重要的知识点——@api装饰器。 你可以把它想象成组件对外开放的大门。当你用@api标记一个字段时,就相当于告诉这个组件:“嘿,这个属性,外面的父组件可以随意读取和修改它。” 这样,父组件就能通过它向子组件传递数据,或者读取子组件的状态,这就是组件的公共API。 这里有一个特别重要的特性:如果这些公开属性被用在了组件的模板里,它们就是反应式的。也就是说,一旦父组件改变了这个属性的值,子组件就会自动重新渲染。重新渲染的时候,会发生两件事:一是模板里所有用到这个属性的表达式都会用新值重新计算,二是组件的`renderedCallback()`这个生命周期方法会被调用。简单来说,改属性→界面自动更新,很省心。 大家要注意,@api装饰器是Lightning Web Components独有的,它不是JavaScript原生就有的装饰器。而且,同一个字段上只能放一个装饰器。比如你不能在一个属性上同时用@api和@track,这样会冲突。 最后,这个属性可以是你自己定义的,也可以是从标准HTML元素接口继承过来的,比如`title`或`className`。这样就给了你很大的灵活性。 好了,@api装饰器的核心就是这些:它是组件的公共大门,父组件可以读写,用在模板里就能自动更新界面,还是LWC特有的。记住这些,你就能很好地控制组件间的沟通了。

关键词

LWC Lightning Web Components Salesforce