Rumah > Artikel > hujung hadapan web > Cara menggunakan kesan jam tangan
Mengesan perubahan dalam Sudut adalah penting untuk kereaktifan. Cangkuk efek jam dalam Angular membolehkan anda memantau nilai atau sifat tertentu dan bertindak balas terhadap perubahan. Artikel ini menerangkan sintaks, penggunaan dan implikasi prestasi Watcheffect. Ia adalah
Watcheffect
in Angular is a hook that allows you to monitor changes in specific values or object properties. Its basic syntax is as follows:
<code class="typescript">@Watcheffect(propertyName or parameterName) effectCallback(changes: ObservableValue<any>) {}</code>
To detect changes in a reactive object using Watcheffect
, you can use the ngOnChanges
lifecycle hook. This hook provides an ngOnChanges
property that contains an object with key-value pairs representing the previous and current values of the changed properties. For instance:
<code class="typescript">@Component(...) class MyComponent { @Watcheffect("myProperty") ngOnChanges(changes: SimpleChanges) { if (changes["myProperty"]) { // Do something when the property changes } } }</code>
Watcheffect
uses zone.js to intercept property accesses and track changes. While it's an effective way to monitor changes, excessive use can lead to performance issues, especially with large objects or frequent property accesses. Consider using @Input
and @Output
properties or reactivity helpers like BehaviorSubject
or ReplaySubject
for better performance in most cases.
Watcheffect
also allows you to create custom detectors for specific values or expressions. This can be useful when you need more granular control over what triggers a change detection. To create a custom detector, use the @DetectionStrategy
property in the @Watcheffect
decorator:
<code class="typescript">@Watcheffect('myExpression', { detectionStrategy: customDetection }) effectCallback(changes: ObservableValue<any>) {}</code>
In the example above, customDetection
rrreee
Watcheffect
, anda boleh menggunakan cangkuk kitar hayat ngOnChanges
. Cangkuk ini menyediakan sifat ngOnChanges
yang mengandungi objek dengan pasangan nilai kunci yang mewakili nilai sebelumnya dan semasa bagi sifat yang diubah. Contohnya:🎜rrreee🎜Implikasi Prestasi🎜🎜@Input
dan @Output
atau pembantu reaktiviti seperti BehaviorSubject
atau ReplaySubject
untuk prestasi yang lebih baik dalam kebanyakan kes. 🎜🎜Pengesan Tersuai dalam Kesan Jam🎜🎜@DetectionStrategy
dalam penghias @Watcheffect
:🎜rrreee🎜Dalam contoh di atas, customDetection
ialah fungsi yang mengambil nilai input dan mengembalikan satu tuple nilai yang mewakili keadaan sebelumnya dan semasa.🎜Atas ialah kandungan terperinci Cara menggunakan kesan jam tangan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!