Using the @track Decorator

DEX470 - Unit 1:Create a Hello World Lightning Web Component

📄 第 22 页 🎬 视频课程

课程章节介绍

今天我们来聊聊Salesforce中的Lightning Web Components(LWC)里的一个装饰器——@Track。这个装饰器在LWC中非常有用,尤其是在处理对象和数组时。 首先,我们来看一个简单的例子。假设我们有一个LWC组件,里面有一个学员对象和一个课程数组。我们使用@Track来装饰这两个属性: ```javascript import { LightningElement, Track } from 'lwc'; export default class HelloWebComponent extends LightningElement { @track student = { first: 'John', last: 'Doe' }; @track classes = ['DEX450', 'CCD102']; } ``` 在这个例子中,`student`是一个对象,`classes`是一个数组。我们使用@Track来告诉Salesforce框架,当这些属性发生变化时,需要重新渲染组件。 接下来,我们来看一下如何更新这些属性: ```javascript // 重新分配会触发重新渲染,无论是否使用@Track this.student = { first: 'Jane', last: 'Doe' }; this.classes = ['DEX601', 'DEX602']; // 由于@Track,接下来的两行只会触发重新渲染 this.student.first = 'Jane'; this.classes.push('DEX470'); ``` 这里有几个关键点需要注意: 1. ,重新分配,:当你重新分配一个对象或数组时,无论是否使用@Track,都会触发组件的重新渲染。比如,`this.student = { first: 'Jane', last: 'Doe' };` 这行代码会触发重新渲染。 2. ,修改属性,:如果你只是修改对象或数组的某个属性或元素,比如 `this.student.first = 'Jane';` 或 `this.classes.push('DEX470');`,那么只有使用@Track装饰的属性才会触发重新渲染。 3. ,@Track的作用,:@Track装饰器主要用于告诉框架,当对象或数组的内部属性发生变化时,需要重新渲染组件。这对于保持UI的同步非常有用。 最后,有一点需要注意的是,虽然你可以将@Track应用于基本类型(比如字符串、数字等),但这并不是必要的。@Track主要用于对象和数组。 总结一下,@Track装饰器在LWC中是一个非常强大的工具,特别是在处理复杂数据结构时。它可以帮助你确保组件的UI能够及时响应数据的变化。希望这个解释对你有帮助!如果有任何问题,随时问我哦。