


Apakah pengesanan perubahan? Mari kita bincangkan tentang mekanisme perubahan sudut
Apakah pengesanan perubahan? Artikel berikut akan membincangkan tentang mekanisme pengesanan perubahan dalam Angular, dan memperkenalkan cara perubahan status memberitahu pengesanan perubahan dan strategi pengesanan perubahan sudut saya harap ia akan membantu semua orang.
1. Apakah itu pengesanan perubahan
- Ringkasan: Perubahan
检测机制
digunakan untuk melintasi pokok komponen , semak perubahan setiap komponen, dan cetuskan kemas kiniDOM
apabila sifat komponen berubah. [Tutorial berkaitan yang disyorkan: "tutorial sudut"] - Tugas asas pengesanan perubahan: Dapatkan dalaman program
状态
dan sediakannya dalam antara muka pengguna可见
. Keadaan ini boleh menjadi sebarang objek, tatasusunan atau jenis data asas.
2. Apakah yang menyebabkan perubahan itu
Berdasarkan peristiwa, sumbernya merangkumi tiga kategori berikut:
- Acara : Klik halaman, serahkan, tetikus ke bawah...
- XHR: Dapatkan data daripada pelayan bahagian belakang
- Pemasa: setTimeout(), setInterval()
Beberapa titik ini mempunyai satu persamaan, iaitu, semuanya tidak segerak, iaitu semua 异步操作
ialah faktor punca yang boleh menyebabkan perubahan data, jadi apabila beberapa operasi tak segerak dilakukan, aplikasi kami keadaan mungkin berubah, Pada masa ini, anda perlu mengemas kini paparan
3. Bagaimana untuk memberitahu pengesanan perubahan perubahan status
Dalam Angular
, NgZone
disambungkan, dan ia datang Mendengar semua 异步事件
Angular, Angular akan menulis semula (melalui Zone.js
) beberapa API penyemak imbas asas semasa permulaan (memintas dengan ganas semua acara tak segerak).
Terdapat dua cara biasa untuk mencetuskan pengesanan perubahan Satu kaedah adalah berdasarkan cangkuk kitaran hayat komponen
ngAfterViewChecked() { console.log('cluster-master.component cd'); }
Kaedah lain adalah dengan mengawal pembukaan atau penutupan pengesanan perubahan secara manual mencetuskan secara manual
constructor(private cd: ChangeDetectorRef) { cd.detach() setInterval(() => { this.cd.detectChanges() }, 5000) }
3. Pengesanan perubahan sudut
Inti Sudut ialah pengkomponenan, dan penyusunan komponen akhirnya akan membentuk pepohon 组件树
. Pengesanan perubahan sudut boleh dibahagikan kepada komponen Setiap komponen mempunyai 变化检测器 ChangeDetector
yang sepadan dengan pengesan perubahan ini juga akan membentuk pokok.
Dalam Angular, setiap komponen mempunyai pengesan perubahan sendiri, yang membolehkan kita mengawal cara dan bila pengesanan perubahan dilakukan untuk setiap komponen.
4. Perubahan strategi pengesanan
Angular juga memberi pembangun keupayaan untuk menyesuaikan strategi pengesanan perubahan.
- lalai:
每次
Pengesanan perubahan akan menyebabkan pengesanan perubahan komponen, termasuk其他组件
perubahan status dan本组件
perubahan nilai atribut dalaman pembolehubah rujukan - Onpush: Setiap pengesanan perubahan akan melangkau semakan perubahan komponen ini, melainkan
满足一些条件
4.1 lalai
Perubahan lalai sudut Mekanisme pengesanan ialah ChangeDetectionStrategy.Default
. Selepas setiap panggilan balik acara tak segerak tamat, NgZone akan mencetuskan 整个组件树
至上而下
untuk melakukan pengesanan perubahan
4.2 <span style="font-size: 18px;">onPush</span>
onPush
跳过
Strategi OnPush, digunakan untuk 所有子组件
komponen dan pengesanan perubahan
OnPush
sebenarnya menetapkan strategi
-
@Input
1)引用
atribut perubahan komponen. -
DOM
2)click、submit、mouse down
peristiwa dalam komponen, termasuk peristiwa DOM sub-komponennya, seperti . -
Observable
3)Async pipe
dalam komponen melanggan acara dan menetapkan pada masa yang sama. -
ChangeDetectorRef.detectChanges()、ChangeDetectorRef.markForCheck()、ApplicationRef.tick()
4) Gunakan kaedah secara manual dalam komponen
5. Tukar rujukan objek pengesanan
-
子组件
markForCheck( ): Digunakan dalam该子组件到根组件
, tandakan laluan antara一定
dan maklumkan pengesan sudut untukonPush
menyemak komponen pada laluan ini semasa pengesanan perubahan seterusnya, walaupun jika strategi pengesanan perubahan ditetapkan kepada -
该组件到各个子组件
detectChanges(): Mulakan pengesanan tukar secara manual -
脱离
detach(): Keluarkan pengesan komponen daripada bilangan pengesan dan tidak lagi dikawal oleh mekanisme pengesanan melainkan disambungkan semula -
重新链接
reattach(): Letakkan pengesan tertanggal ke dalam pepohon pengesan
Untuk lebih banyak pengetahuan berkaitan pengaturcaraan, sila lawati: Video Pengaturcaraan
! !Atas ialah kandungan terperinci Apakah pengesanan perubahan? Mari kita bincangkan tentang mekanisme perubahan sudut. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Angular.js ialah platform JavaScript yang boleh diakses secara bebas untuk mencipta aplikasi dinamik. Ia membolehkan anda menyatakan pelbagai aspek aplikasi anda dengan cepat dan jelas dengan memanjangkan sintaks HTML sebagai bahasa templat. Angular.js menyediakan pelbagai alatan untuk membantu anda menulis, mengemas kini dan menguji kod anda. Selain itu, ia menyediakan banyak ciri seperti penghalaan dan pengurusan borang. Panduan ini akan membincangkan cara memasang Angular pada Ubuntu24. Mula-mula, anda perlu memasang Node.js. Node.js ialah persekitaran berjalan JavaScript berdasarkan enjin ChromeV8 yang membolehkan anda menjalankan kod JavaScript pada bahagian pelayan. Untuk berada di Ub

Artikel ini akan membawa anda untuk terus belajar sudut dan memahami secara ringkas komponen kendiri (Komponen Kendiri) dalam Angular Saya harap ia akan membantu anda!

Artikel ini akan memberi anda pemahaman yang mendalam tentang pengurus negeri Angular NgRx dan memperkenalkan cara menggunakan NgRx saya harap ia akan membantu anda!

Bagaimana untuk menggunakan monaco-editor dalam sudut? Artikel berikut merekodkan penggunaan monaco-editor dalam sudut yang digunakan dalam perniagaan baru-baru ini. Saya harap ia akan membantu semua orang!

Adakah anda tahu Angular Universal? Ia boleh membantu tapak web menyediakan sokongan SEO yang lebih baik!

Artikel ini akan berkongsi dengan anda pengalaman praktikal Angular dan mempelajari cara membangunkan sistem bahagian belakang dengan cepat menggunakan angualr digabungkan dengan ng-zorro. Saya harap ia akan membantu semua orang.

Dengan perkembangan pesat Internet, teknologi pembangunan bahagian hadapan juga sentiasa bertambah baik dan berulang. PHP dan Angular ialah dua teknologi yang digunakan secara meluas dalam pembangunan bahagian hadapan. PHP ialah bahasa skrip sebelah pelayan yang boleh mengendalikan tugas seperti memproses borang, menjana halaman dinamik dan mengurus kebenaran akses. Angular ialah rangka kerja JavaScript yang boleh digunakan untuk membangunkan aplikasi satu halaman dan membina aplikasi web berkomponen. Artikel ini akan memperkenalkan cara menggunakan PHP dan Angular untuk pembangunan bahagian hadapan, dan cara menggabungkannya

Tingkah laku paparan lalai untuk komponen dalam rangka kerja Angular bukan untuk elemen peringkat blok. Pilihan reka bentuk ini menggalakkan pengkapsulan gaya komponen dan menggalakkan pembangun untuk secara sedar menentukan cara setiap komponen dipaparkan. Dengan menetapkan paparan sifat CSS secara eksplisit, paparan komponen Sudut boleh dikawal sepenuhnya untuk mencapai reka letak dan responsif yang diingini.
