Artikel ini meringkaskan dan berkongsi 18 soalan temu bual bersudut biasa (dengan analisis jawapan) untuk membantu anda menyusun pengetahuan asas dan meningkatkan rizab pengetahuan sudut anda Adalah berbaloi untuk dikumpulkan, datang dan lihat!
1. Apakah mekanisme yang digunakan oleh sudut untuk mengikat data? Terangkan prinsip secara terperinci
Jawapan: Mekanisme pemeriksaan yang kotor.
Analisis:
Pengikatan data dua hala ialah salah satu mekanisme teras AngularJS. Apabila sebarang data berubah dalam paparan, ia akan dikemas kini kepada model Apabila data dalam model berubah, paparan juga akan dikemas kini secara serentak. Jelas sekali, ini memerlukan pemantauan. [Cadangan tutorial berkaitan: "tutorial sudut"]
Prinsipnya ialah Angular menetapkan baris gilir mendengar pada model skop untuk memantau perubahan data dan mengemas kini paparan. Setiap kali anda mengikat sesuatu pada paparan, AngularJS akan memasukkan $watch ke dalam baris gilir $watch untuk mengesan sama ada terdapat perubahan dalam model yang dipantau. Apabila penyemak imbas menerima peristiwa yang boleh diproses oleh konteks sudut, gelung $digest dicetuskan, merentasi semua $watches dan akhirnya mengemas kini dom.
2. Bagaimanakah pengikatan data dua hala AngularJS dilaksanakan?
Jawapan:
1 Setiap elemen terikat dua hala mempunyai pemerhati
2. Apabila peristiwa tertentu berlaku, cerna data kotor dipanggil pengesanan.
Acara ini termasuk: perubahan kandungan unsur bentuk, respons permintaan Ajax, fungsi yang dilaksanakan dengan mengklik butang, dsb.
3. Pengesanan data yang kotor akan mengesan semua elemen pemerhati di bawah skop akar.
Fungsi $digest ialah pemantauan data kotor
3 Apakah pemalam pihak ketiga yang telah anda gunakan semasa membangunkan projek angularjs
Jawapan : AngularUi ui-router oclazyload dsb. Dilampirkan artikel untuk melihat dengan lebih dekat https://segmentfault.com/a/1190000003858219
4 Perbezaan antara ng-show/ng-hide dan ng-jika ?
Jawapan: Kita semua tahu bahawa ng-show/ng-hide sebenarnya menyembunyikan dan memaparkan melalui paparan. Dan ng-if sebenarnya mengawal penambahan dan pemadaman nod dom. Oleh itu, jika kita memuatkan nod dom berdasarkan keadaan yang berbeza, maka prestasi ng-if adalah lebih baik daripada ng-show.
5. Terangkan apa itu r o o tSc r o p e dan rootScrope dan rootScrope dan perbezaannya antaranya dan skop?
Jawapan: Dalam istilah orang awam, r o o tSc r op e page ialah bapa kepada semua halaman rootScrope dan semua skop semua halaman rootScrope.
Analisis:
Mari kita lihat cara menjana r o o tSc o p e dan rootScope dan rootScope dan skop.
langkah1:Angular menghuraikan ng-app dan mencipta $rootScope dalam ingatan.
step2:angular meneruskan penghuraian, mencari ungkapan {{}} dan menghuraikannya menjadi pembolehubah.
langkah3: Kemudian div dengan pengawal-ng akan dihuraikan dan dihalakan ke fungsi pengawal. Pada masa ini, fungsi pengawal menjadi contoh objek $scope.
6. Senaraikan sekurang-kurangnya tiga cara untuk melaksanakan komunikasi antara modul yang berbeza?
Jawapan:
7 Bagaimanakah ungkapan {{yourModel}} berfungsi?
Jawapan:
Ia bergantung pada perkhidmatan $interpolation Selepas memulakan html halaman, ia akan mencari ungkapan ini dan menandakannya, jadi setiap kali ia menghadapi {. { }} , $watch akan ditetapkan. $interpolation akan mengembalikan fungsi dengan parameter konteks Apabila fungsi akhirnya dilaksanakan, ungkapan adalah $parse kepada skop itu.
8. $http dalam sudut
Jawapan: $http ialah perkhidmatan teras dalam AngularJS, digunakan untuk membaca data dari pelayan jauh.
Kita boleh menggunakan perkhidmatan http terbina dalam untuk berkomunikasi secara langsung dengan dunia luar. Perkhidmatan http berkomunikasi secara langsung dengan dunia luar. Perkhidmatan http berkomunikasi secara langsung dengan dunia luar. Perkhidmatan http hanya merangkum objek XMLHttpRequest asli pelayar.
9. Apabila ng-repeat mengulang tatasusunan, jika terdapat nilai yang sama dalam tatasusunan, apakah masalah yang akan berlaku dan bagaimana untuk menyelesaikannya?
Jawapan: Ia akan menggesa bahawa Pendua dalam pengulang tidak dibenarkan Tambah trek mengikut $index untuk menyelesaikan masalah. Sudah tentu, anda juga boleh mengesan mengikut mana-mana nilai biasa, asalkan ia boleh mengenal pasti secara unik setiap item dalam tatasusunan (wujudkan perkaitan antara dom dan data)
Adalah rangka kerja angularjs mvc atau mvvm
Jawapan: mvvm
Analisis:
Mula-mula terangkan pemahaman anda tentang mvc dan mvvm:
Pertama sekali, mengapa kita memerlukannya ? Kerana apabila saiz kod menjadi lebih besar dan lebih besar, membahagikan tanggungjawab adalah trend umum, dan untuk kemudahan penyelenggaraan kemudian, mengubah suai satu fungsi tidak menjejaskan fungsi lain. Dan untuk digunakan semula, kerana banyak logiknya adalah sama. MVC hanyalah satu cara, matlamat utama ialah modularisasi dan penggunaan semula.
Kelebihan mvvm
Gandingan rendah: Paparan boleh ditukar dan diubah suai secara berasingan daripada Model, dan ViewModel yang sama boleh digunakan semula oleh berbilang Paparan dan perubahan dalam Paparan dan Model boleh dibuat secara bebas antara satu sama lain
Kebolehgunaan semula: Ya Letakkan beberapa logik paparan dalam ViewModel untuk menggunakan semula berbilang Views; 🎜>Kebolehujian: Lapisan Clear View menjadikan pengujian logik perniagaan lapisan pembentangan lebih mudah dan ringkas
Corak MVVM dalam sudut terbahagi terutamanya kepada empat bahagian:
Paparan: Ia memfokuskan pada paparan dan pemaparan antara muka. Dalam sudut, ia adalah templat paparan yang mengandungi sekumpulan arahan pengisytiharan
ViewModel: Ia adalah gam View dan Model, bertanggungjawab untuk interaksi dan kerjasama Model. ia bertanggungjawab untuk menyediakan data yang dipaparkan kepada Paparan, dan menyediakan cara untuk acara Perintah dalam Paparan untuk mengendalikan Model dalam sudut, objek $scope memainkan peranan ViewModel; ialah Pembawa enkapsulasi data yang berkaitan dengan logik perniagaan aplikasi ialah objek dalam domain perniagaan Model tidak mengambil berat tentang cara ia dipaparkan atau dikendalikan, jadi model itu tidak mengandungi sebarang logik berkaitan paparan antara muka mengembalikan data daripada pelayan Ajax atau merupakan objek konfigurasi global manakala perkhidmatan dalam Angular ialah tempat untuk merangkum dan memproses logik perniagaan yang berkaitan dengan Model Perkhidmatan perniagaan ini boleh digunakan oleh berbilang Pengawal atau perkhidmatan Domain yang digunakan semula oleh perkhidmatan lain .
Pengawal: Ini bukan elemen teras corak MVVM, tetapi ia bertanggungjawab untuk pemulaan objek ViewModel Ia akan menggabungkan satu atau lebih perkhidmatan untuk mendapatkan Model domain perniagaan dan meletakkannya dalam Objek ViewModel.
Antara muka mvc berkait rapat dengan logik Antara muka mvvm digandingkan secara longgar dengan mod pandangan, dan data antara muka Diperolehi daripada model pandangan
11. Apakah peranan yang dimainkan oleh $skop, pengawal, arahan dan perkhidmatan dalam mvvm dalam angularjsJawapan: Jika anda saya tidak tahu, analisis bagi soalan pertama sangat jelas, baca dengan teliti sekali lagi
12. Bagaimanakah anda mengawal pemuatan sumber statik yang munasabah dalam projek sudut
Jawapan: Tiada
13. Apakah yang anda perlu beri perhatian semasa menulis logik pengawal?
Jawapan:
1. Permudahkan kod (ini diperlukan oleh semua pembangun) 2. Anda boleh bertanya di sini masa Mengapa tidak?
Jawapan anda ialah: Operasi DOM hanya boleh muncul dalam arahan. Tempat terakhir yang sepatutnya dipaparkan adalah dalam perkhidmatan. Angular menyokong pembangunan dipacu ujian Jika operasi DOM muncul dalam perkhidmatan atau pengawal, ini bermakna ujian tidak boleh lulus. Sudah tentu, ini hanyalah satu perkara Apa yang penting ialah salah satu faedah menggunakan Angular, iaitu pengikatan data dua hala, supaya anda boleh fokus pada pemprosesan logik perniagaan tanpa perlu berurusan dengan longgokan operasi DOM. Jika kod Angular masih penuh dengan pelbagai operasi DOM, maka mengapa tidak gunakan jquery sahaja untuk membangunkannya.
Apakah pembangunan dipacu ujian? Untuk mempopularkannya:
Pembangunan dipacu ujian, nama penuh bahasa Inggeris ialah Test-Driven Development, atau singkatannya TDD, ialah kaedah pembangunan baharu yang berbeza daripada proses pembangunan perisian tradisional. Ia memerlukan menulis kod ujian sebelum menulis kod untuk fungsi tertentu, dan kemudian hanya menulis kod fungsian yang membuat ujian lulus, dan memacu keseluruhan pembangunan melalui ujian. Ini membantu menulis kod yang ringkas, boleh digunakan dan berkualiti tinggi serta mempercepatkan proses pembangunan.
14. Cara berkomunikasi antara pengawalJawapan:
1 acaraTerdapat dua cara di sini, satu Satu ialah scope.scope.emit, dan kemudian mendapatkan parameter dengan mendengar acara rootScope; yang satu lagi ialah acara rootScope untuk mendapatkan parameter; yang satu lagi ialah rootScope.b r o a d c a s t untuk menyiarkan, mendapatkan parameter dengan mendengar siaran, dan mendengar acara skop.
Tiada perbezaan prestasi antara kedua-dua kaedah ini dalam versi terkini Angular Sebab utama ialah arah penghantaran acara adalah berbeza, dan anda boleh memilih mengikut situasi sebenar.
2. perkhidmatan
Anda boleh mencipta Perkhidmatan acara khusus, atau anda boleh membahagikannya mengikut logik perniagaan dan menyimpan data dalam Perkhidmatan yang sepadan
3
Kaedah ini mungkin sedikit kotor, tetapi ia lebih mudah, iaitu, data disimpan dalam rootScope, supaya ia boleh dipanggil dalam setiap sub-rootScope, supaya setiap sub-skop boleh dipanggil, tetapi ia perlu diperhatikan .skop.ibu bapa. Kaedah ini mempunyai lebih banyak kelemahan Secara rasmi tidak disyorkan untuk menggunakan sebarang atribut bermula dengan $$, yang bukan sahaja meningkatkan gandingan, tetapi juga memerlukan menangani isu tak segerak, dan susunan skop tidak tetap. Tidak disyorkan
Yang lain adalah untuk menghantar parameter melalui storan tempatan, pembolehubah global atau postMessage penyemak imbas moden Melainkan terdapat keadaan khusus, sila elakkan kaedah ini.
15. Beberapa parameter arahan tersuai
Jawapan:
Mari kita bincangkan beberapa yang biasa digunakan seperti:
sekat : Borang pengisytiharan arahan dalam dom E (elemen) A (atribut) C (nama kelas) M (komen)
templat: dua bentuk, satu teks HTML; satu fungsi yang boleh menerima dua parameter, tElemetn dan tAttrs, dan mengembalikan rentetan yang mewakili templat. Rentetan templat mesti mempunyai elemen DOM akar
templateUrl: dua bentuk, satu ialah rentetan yang mewakili laluan fail HTML luaran, fungsi yang boleh menerima dua parameter, parameternya ialah tElement dan tAttrs, dan kembali Rentetan laluan fail HTML luaran
kompilasi (objek atau fungsi): Pilihan penyusunan boleh mengembalikan objek atau fungsi. Jika fungsi kompil ditetapkan, ini bermakna kami ingin melaksanakan operasi DOM sebelum arahan dan data masa nyata diletakkan dalam DOM Adalah selamat untuk melaksanakan operasi DOM seperti menambah dan memadam nod dalam fungsi ini. Pada asasnya, apabila kami menetapkan pilihan pautan, kami sebenarnya mencipta fungsi pautan postLink() supaya fungsi compile() boleh mentakrifkan fungsi pautan.
Kemudian terdapat portal: http://www.cnblogs.com/mliudong/p/4180680.html
Perbezaan antara compile dan link:
Apabila menyusun , compile menukar dom dan menyimpannya dahulu apabila ia bertemu dengan pendengar terikat Beberapa disimpan, dan akhirnya ia diringkaskan ke dalam fungsi pautan dan dilaksanakan bersama, yang meningkatkan prestasi.
16 Perbezaan antara sudut dan jquery
Jawapan:
sudut dipacu data, jadi sudut sesuai untuk projek dengan operasi data yang rumit ( Di sini anda boleh menyebut permohonan satu halaman sekali lagi. Jika anda tidak tahu caranya, faedahnya ada di sini lagi http://www.zhihu.com/question/20792064)
jquery adalah berdasarkan dom pemandu, dan jquery sesuai untuk melakukan banyak operasi dom
17. Sejauh manakah anda tahu tentang bentuk dalam sudut? >Angular telah melanjutkan jenis elemen input dan menyediakan sejumlah 10 jenis berikut:
teks
nombor
url
e-mel
radio
kotak semak
tersembunyi
butang
serah
set semula
Angular ialah bentuk Terdapat 4 gaya CSS terbina dalam.
ng-sah mengesahkan status undang-undang
ng-invalid mengesahkan status haram
ng-pristine Jika anda ingin menggunakan borang asli, anda perlu menetapkan nilai ini
ng-dirty Borang berada dalam keadaan data kotor
Angular berada dalam bentuk Apabila melakukan pengesahan automatik, atribut pada Model akan disahkan Jika ng-model tidak ditetapkan, Angular tidak dapat mengetahui sama ada nilai myForm.$invalid adalah benar.
diperlukan menunjukkan sama ada untuk memasukkan kandungan
ng-maxlength panjang maksimum
panjang minimum ng-min
Contoh: Portal https://github.com/18500047564/clutter
Jawapan:
tarikh (tarikh)
mata wang (mata wang)
limitTo (hadkan tatasusunan atau panjang rentetan)
pesanan Mengikut (isih)
huruf kecil (huruf kecil )
huruf besar (huruf besar)
nombor (memformat nombor, menambah ribuan pemisah dan menerima parameter untuk mengehadkan bilangan titik perpuluhan)
penapis (proses tatasusunan, tapis keluar elemen yang mengandungi subrentetan tertentu)
json (objek json berformat)
Terdapat dua cara untuk menggunakan penapis,
<p>{{now | date : ‘yyyy-MM-dd’}}</p>
$filter(‘过滤器名称’)(需要过滤的对象, 参数 1, 参数 2,…) $filter(‘date’)(now, 'yyyy-MM-dd hh:mm:ss’);
Tutorial Pengaturcaraan
! !app.filter("unique", function() { return function(arr) { var n = []; var obj = {}; for (var i = 0; i < arr.length; i++) { if (!obj[arr[i]]) { n.push(arr[i]); obj[arr[i]] = 1; } } return n; }; });
Atas ialah kandungan terperinci 18 soalan temu bual sudut biasa (dengan analisis jawapan). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!