Lightning Web 组件反应性和非反应性属性
Lightning Web Component Reactive and Non Reactive Properties
我有一个带有 2 个私有属性的 Lightning Web 组件。一个 属性 通过轨道反应,第二个是非反应(未装饰)。
这是 HTML 文件:
<template>
<table style="background: white;">
<tr>
<td>
Reactive Private Property:
<lightning-input type="text" onchange={reactiveHandler}></lightning-input>
Value: {reactiveProperty}
</td>
</tr>
<tr>
<td>
Nont-Reactive Private Property:
<lightning-input type="text" onchange={nonReactiveHandler}></lightning-input>
Value: {nonReactiveProperty}
</td>
</tr>
</table>
</template>
这是 JS 文件:
import { LightningElement, track } from 'lwc';
export default class ReactiveAndNonReactiveProperties extends LightningElement {
@track reactiveProperty;
nonReactiveProperty;
reactiveHandler(event) {
this.reactiveProperty = event.target.value;
}
nonReactiveHandler(event) {
this.nonReactiveProperty = event.target.value;
}
}
如您所见,只有一个 属性 用@track 装饰。但是,当我在非响应式 属性 的输入文本中键入内容时,它仍会呈现在屏幕上,除非我更改响应式 属性 的输入文本中的值,否则不会发生这种情况.
根据 Spring'20 版本,默认情况下所有属性都是反应性的。即使你不使用 "track" ,它也会呈现在屏幕上。
更正提供的答案:根据 Spring'20 版本,默认情况下所有原始属性都是反应式的,但是,如果 属性 持有的值是数组或对象,则您需要使用@track 装饰器
指定属性 反应式
我有一个带有 2 个私有属性的 Lightning Web 组件。一个 属性 通过轨道反应,第二个是非反应(未装饰)。
这是 HTML 文件:
<template>
<table style="background: white;">
<tr>
<td>
Reactive Private Property:
<lightning-input type="text" onchange={reactiveHandler}></lightning-input>
Value: {reactiveProperty}
</td>
</tr>
<tr>
<td>
Nont-Reactive Private Property:
<lightning-input type="text" onchange={nonReactiveHandler}></lightning-input>
Value: {nonReactiveProperty}
</td>
</tr>
</table>
</template>
这是 JS 文件:
import { LightningElement, track } from 'lwc';
export default class ReactiveAndNonReactiveProperties extends LightningElement {
@track reactiveProperty;
nonReactiveProperty;
reactiveHandler(event) {
this.reactiveProperty = event.target.value;
}
nonReactiveHandler(event) {
this.nonReactiveProperty = event.target.value;
}
}
如您所见,只有一个 属性 用@track 装饰。但是,当我在非响应式 属性 的输入文本中键入内容时,它仍会呈现在屏幕上,除非我更改响应式 属性 的输入文本中的值,否则不会发生这种情况.
根据 Spring'20 版本,默认情况下所有属性都是反应性的。即使你不使用 "track" ,它也会呈现在屏幕上。
更正提供的答案:根据 Spring'20 版本,默认情况下所有原始属性都是反应式的,但是,如果 属性 持有的值是数组或对象,则您需要使用@track 装饰器
指定属性 反应式