课程章节介绍
今天我们来聊聊 Lightning Web Components 里一个特别有用的模式——获取器和设置器,也就是 getter 和 setter。
简单说,getter 和 setter 能让你控制别人怎么读取或者修改组件的公共属性。有两条很简单的规则要记住:如果你提供一个 getter,也必须提供对应的 setter,反之也是一样。但是,你只需要用 @api 装饰器标注其中一个,通常咱们习惯标注在 getter 上。
那么,真正存数据的地方在哪里呢?别直接放在公共属性里,而是用一个私有字段,以_ 开头,比如 _uppercaseItemName。这样既能隐藏内部实现,又能让你在 setter 里加各种逻辑。
有了 setter,你可以做很多事。举个例子,把用户输入的值自动转成大写,或者验证数据是否符合要求,也可以格式化成你想要的形式,甚至触发一些副作用,比如记录日志或更新其他东西。
再说 getter,你可以在里面用 try-catch 包起来,这样就算读数据的时候出了错,也能优雅的处理,不会让组件崩溃。
想看看实际的代码吗?lwc-recipes 这个官方样例库里就有 illustrate,其中 apiSetterGetter 和 todoList 这两个例子都展示了这些模式,特别直观。
所以,记住这个模式:私有变量存数据,用 @api 的 getter 公开读取,用 setter 来控制写入,让组件更安全、更灵活。
关键词
LWC
Lightning Web Components
Salesforce