Jadual Kandungan
1. Apakah itu pengesanan perubahan
2. Apakah yang menyebabkan perubahan itu
3. Bagaimana untuk memberitahu pengesanan perubahan perubahan status
3. Pengesanan perubahan sudut
4. Perubahan strategi pengesanan
Rumah hujung hadapan web tutorial js Apakah pengesanan perubahan? Mari kita bincangkan tentang mekanisme perubahan sudut

Apakah pengesanan perubahan? Mari kita bincangkan tentang mekanisme perubahan sudut

May 30, 2022 am 11:15 AM
angular angular.js

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.

Apakah pengesanan perubahan? Mari kita bincangkan tentang mekanisme perubahan sudut

1. Apakah itu pengesanan perubahan

  • Ringkasan: Perubahan 检测机制 digunakan untuk melintasi pokok komponen , semak perubahan setiap komponen, dan cetuskan kemas kini DOM 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');
  }
Salin selepas log masuk

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)
}
Salin selepas log masuk

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

di bawahnya

OnPush sebenarnya menetapkan strategi

Pada masa hadapan, terdapat masih banyak cara untuk mencetuskan pengesanan perubahan;
  • @Input1) 引用 atribut
  • perubahan komponen.
  • DOM2) click、submit、mouse down peristiwa dalam komponen, termasuk peristiwa DOM sub-komponennya, seperti
  • .
  • Observable3) 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 untuk onPush 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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk memasang Angular pada Ubuntu 24.04 Bagaimana untuk memasang Angular pada Ubuntu 24.04 Mar 23, 2024 pm 12:20 PM

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

Pembelajaran sudut bercakap tentang komponen kendiri (Komponen Kendiri) Pembelajaran sudut bercakap tentang komponen kendiri (Komponen Kendiri) Dec 19, 2022 pm 07:24 PM

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!

Penjelasan terperinci tentang pengurus keadaan pembelajaran sudut NgRx Penjelasan terperinci tentang pengurus keadaan pembelajaran sudut NgRx May 25, 2022 am 11:01 AM

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

Analisis ringkas tentang cara menggunakan editor monaco dalam sudut Analisis ringkas tentang cara menggunakan editor monaco dalam sudut Oct 17, 2022 pm 08:04 PM

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!

Artikel yang meneroka pemaparan sisi pelayan (SSR) dalam Angular Artikel yang meneroka pemaparan sisi pelayan (SSR) dalam Angular Dec 27, 2022 pm 07:24 PM

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

Angular NG-ZORRO dengan cepat membangunkan sistem bahagian belakang Angular NG-ZORRO dengan cepat membangunkan sistem bahagian belakang Apr 21, 2022 am 10:45 AM

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.

Cara menggunakan PHP dan Angular untuk pembangunan bahagian hadapan Cara menggunakan PHP dan Angular untuk pembangunan bahagian hadapan May 11, 2023 pm 04:04 PM

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

Komponen sudut dan sifat paparannya: memahami lalai bukan blok Komponen sudut dan sifat paparannya: memahami lalai bukan blok Mar 15, 2024 pm 04:51 PM

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.

See all articles