Pembelajaran sudut bercakap tentang suntikan pergantungan
Apakah suntikan pergantungan? Artikel ini akan membawa anda melalui suntikan pergantungan (DI) dalam sudut dan memperkenalkan secara terperinci dua konsep teras rangka kerja AngularDI: penyuntik dan pembekal saya harap ia akan membantu anda!
Suntikan Kebergantungan (DI) dalam sudut
Ikhtisar
Suntikan Ketergantungan (Dependency Injection), dirujuk sebagai DI
, ialah sejenis pengaturcaraan 面向对象
yang digunakan untuk mengurangkan 设计原则
darjah gandingan antara kod. [Cadangan tutorial berkaitan: "tutorial sudut"]
class MailService { constructor(APIKEY) {} } class EmailSender { mailService: MailService constructor() { this.mailService = new MailService("APIKEY1234567890") } sendMail(mail) { this.mailService.sendMail(mail) } } const emailSender = new EmailSender() emailSender.sendMail(mail)
class EmailSender { mailService: MailService constructor(mailService: MailService) { this.mailService = mailService; } } const mailService = new MailService("APIKEY1234567890") const emailSender = new EmailSender(mailService)
Apabila membuat instance kelas EmailSender, masukkan kebergantungannya ke bahagian dalam kelas melalui parameter pembina pembina Cara penulisan ini ialah suntikan pergantungan.
Melalui suntikan pergantungan, gandingan antara kod dikurangkan dan kebolehselenggaraan kod ditingkatkan. Perubahan kod dalam kelas MailService tidak lagi menjejaskan kelas EmailSender.2. Rangka kerja DI
Angular mempunyai sendiri, yang akan melaksanakan proses suntikan pergantungan DI 框架
, untuk pembangunan Untuk pembangun, anda boleh menggunakan fungsi suntikan kebergantungan yang kompleks dengan kod yang sangat mudah. 隐藏
: objek contoh yang komponen bergantung, objek contoh perkhidmatan
Dependency
: Dapatkan identiti objek contoh perkhidmatan
Token
: Penyuntik, bertanggungjawab untuk
Injector
objek contoh kelas perkhidmatan dan hantarkannya kepada komponen创建维护
Objek contoh perkhidmatan (menguruskan penciptaan dan pemerolehan objek perkhidmatan).注入
: Konfigurasikan objek penyuntik, nyatakan kelas perkhidmatan untuk mencipta objek contoh perkhidmatan dan dapatkan pengecam objek contoh. (Penyedia: Pembekal)
Provider
2.1 Penyuntik
Penyuntik bertanggungjawab untuk mencipta objek contoh kelas perkhidmatan dan menyuntik objek contoh kelas perkhidmatan ke dalam yang diperlukan komponen.- Buat penyuntik
import { ReflectiveInjector } from "@angular/core" // 服务类 class MailService {} // 创建注入器并传入服务类 const injector = ReflectiveInjector.resolveAndCreate([MailService])
Salin selepas log masuk - Dapatkan objek contoh kelas perkhidmatan dalam penyuntik
const mailService = injector.get(MailService)
Salin selepas log masuk - Objek contoh perkhidmatan berada dalam mod tunggal, dan penyuntik akan cache selepas mencipta tika perkhidmatan
const mailService1 = injector.get(MailService) const mailService2 = injector.get(MailService) console.log(mailService1 === mailService2) // true
Salin selepas log masuk - Penuntik yang berbeza mengembalikan objek contoh perkhidmatan yang berbeza
const injector = ReflectiveInjector.resolveAndCreate([MailService]) const childInjector = injector.resolveAndCreateChild([MailService]) const mailService1 = injector.get(MailService) const mailService2 = childInjector.get(MailService) console.log(mailService1 === mailService2) // false
Salin selepas log masuk - Fungsi carian contoh perkhidmatan adalah serupa dengan
Jika tahap semasa boleh ditemui, gunakan tahap semasa Jika tahap semasa tidak ditemui, cari dalam tahap induk
作用域链
const injector = ReflectiveInjector.resolveAndCreate([MailService]) const childInjector = injector.resolveAndCreateChild([]) const mailService1 = injector.get(MailService) const mailService2 = childInjector.get(MailService) console.log(mailService1 === mailService2) // true
Salin selepas log masuk
2.2 Pembekal
- Konfigurasikan objek penyuntik, nyatakan kelas perkhidmatan untuk mencipta objek contoh dan kaedah untuk mengakses logo objek contoh perkhidmatan.
const injector = ReflectiveInjector.resolveAndCreate([ { provide: MailService, useClass: MailService } ])
Salin selepas log masuk - Pengecam objek bergantung akses juga boleh menjadi jenis rentetan
const injector = ReflectiveInjector.resolveAndCreate([ { provide: "mail", useClass: MailService } ]) const mailService = injector.get("mail")
Salin selepas log masuk - useValue Mewujudkan hubungan gandingan yang longgar antara objek contoh dan rujukan luaran Objek luaran memperoleh objek contoh melalui pengecam Selagi pengecam kekal tidak berubah, tidak kira bagaimana kod dalaman berubah. ia tidak akan menjejaskan dunia luar. Untuk lebih banyak pengetahuan berkaitan pengaturcaraan, sila lawati:
const injector = ReflectiveInjector.resolveAndCreate([ { provide: "Config", useValue: Object.freeze({ APIKEY: "API1234567890", APISCRET: "500-400-300" }) } ]) const Config = injector.get("Config")
Salin selepas log masukVideo Pengaturcaraan! !
Atas ialah kandungan terperinci Pembelajaran sudut bercakap tentang suntikan pergantungan. 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!

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.

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

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.
