🚜
【Lightning Web Component】@trackをつけなくても変更検知される場合とされない場合がある
はじめに
今回はLightning Web Component(以降:LWC)での変数の変更検知について@trackをつけなくても変更検知される場合とされない場合があることについて書いていきます。
@trackをつけなくても変更検知されるもの
フィールドについては@trackをつけなくても変更検知がされます。
import { LightningElement } from 'lwc';
export default class ReactivityExample extends LightningElement {
bool = true; //@track bool = true;としなくて良い
number = 42; //@track number = 42;としなくて良い
obj = { name: 'John' };
//・・・
}
@trackをつけないと変更検知されないもの
オブジェクトや配列は@trackをつけないとプロパティの変更が検知されません。
そのためフロントにてオブジェクトの中身を表示している場合、@trackをつけることでオブジェクトの中身の変更を検知することができ、コンポーネントを再レンダリングすることができます。
import { LightningElement } from 'lwc';
export default class ReactivityExample extends LightningElement {
bool = true;
number = 42;
obj = { name: 'John' };//@trackを付けないとオブジェクトのプロパティ(name)の変更は検知されない
//・・・
}
参考
Discussion