Tentang avalonjs
Avalon adalah kerangka kerja mini MVVM yang sederhana dan mudah digunakan. Ini pertama kali diterbitkan pada 2012.09.15 dan dikembangkan untuk menyelesaikan keberadaan berbagai pandangan dari logika bisnis yang sama. Faktanya, masalah ini sebenarnya dapat diselesaikan hanya dengan menggunakan templat front-end umum dan delegasi acara jQuery, tetapi seiring dengan berkembangnya bisnis, kode ini penuh dengan berbagai pemilih dan panggilan balik acara, yang sulit dipertahankan. Oleh karena itu, benar -benar memisahkan bisnis dari logika hanya dapat mengandalkan arsitektur. Hal pertama yang saya pikirkan adalah MVC. Saya mencoba tulang punggung, tetapi kodenya tidak jatuh tetapi naik. Itu adalah kesempatan yang sangat sesekali. Ketika saya menemukan WPF Microsoft, arsitektur MVVM yang elegan segera menarik saya. Saya pikir ini adalah solusi yang selalu saya kejar.
MVVM benar-benar membagi semua kode front-end menjadi dua bagian, dan pemrosesan tampilan diimplementasikan melalui pengikatan (Angular memiliki kata benda yang lebih dingin yang disebut instruksi), dan logika bisnis terkonsentrasi pada objek yang disebut VM. Selama kami mengoperasikan data VM, itu akan secara alami dan ajaib menyinkronkan ke tampilan. Jelas semua misteri memiliki informasi orang dalam sendiri. C# diimplementasikan melalui pernyataan yang disebut atribut Accessor, begitu juga JS memiliki hal -hal yang sesuai. Terima kasih Tuhan, IE8 pertama kali memperkenalkan hal ini (Object.Defineproperty), tetapi sayangnya ada bug, tetapi telah menyebabkan browser lain mengimplementasikannya, jadi IE9+ dapat menggunakannya dengan aman. Saya telah mencari IE kuno untuk waktu yang lama, tetapi saya benar-benar tidak bisa melakukannya, jadi saya menggunakan VBScript untuk mengimplementasikannya.
Fungsi objek.defineproperty atau VBS adalah untuk mengonversi properti tertentu dari objek menjadi setter dan pengambil. Kami hanya perlu membajak kedua metode ini dan secara diam -diam dapat mengoperasikan tampilan melalui mode pub/sub. Untuk memperingati panduan WPF, saya menamai proyek ini setelah nama kode pengembangan asli WPF Avalon. Ini benar-benar dapat membantu personel front-end keluar dari lautan penderitaan Dom dan datang ke surga data!
Off Topic:
Baru -baru ini, saya mengambil alih sebuah proyek dan ujung depan menggunakan kerangka MVVM Avalon. Untuk orang -orang yang telah terpapar pada AngularJS, selalu terasa bahwa Avalon masih "terlalu" ringan (bukan pujian)
Dukungan online Avalon tidak lebih dari: dibuat di dalam negeri, ukurannya kecil, lolos dari operasi DOM, beroperasi rendah, dan kompatibel dengan IE6; Kerugiannya adalah: "Namun, Avalon juga memiliki kelemahannya sendiri - kurang terkenal", eh, saya ingin diam ...
Saya mengeluh bahwa transisi jQuery tergantung pada penyeleksi dan operasi DOM yang rumit, tetapi Avalon's AJAX dan efek animasi masih harus bergantung pada kontrol lain. Bahkan, mereka sering digunakan dengan jQuery. Saya mengeluh bahwa jQuery tidak dapat dipisahkan dari jQuery. Ini benar-benar sebuah tragedi ... sangat sulit untuk memulai dengan Angular, ini adalah kesulitan yang rendah untuk memulai dengan NG, ini adalah ekologi yang baik, fungsi yang kuat, dokumen dan terjemahan lengkap, komunitas dewasa dan aktif, dan banyak plug-in resmi dan plug-in pihak ketiga.
Masalah kinerja, untuk menyeimbangkan efisiensi dan kinerja pengembangan, ini hanya masalah pilihan. Orang yang menggunakan NG tidak akan khawatir tentang masalah kinerja dan mengeluh tentang kompatibilitas versi sudut. Tetapi Avalon masih membuat pernyataan seperti ini: "Catatan: Tiga cabang di atas relatif stabil, tetapi mereka tidak kompatibel satu sama lain. Dianjurkan untuk menggunakan 2.0 secara langsung."
Di atas hanya untuk mengeluh tentang pengesahan copywriting. Avalon juga merupakan kerangka kerja yang baik, dan telah mengoptimalkan, meningkatkan dan menyerap keuntungan dari kerangka kerja MVVM yang terkenal itu. Misalnya, versi 2.0 telah menambahkan 4 filter array, dan instruksi juga telah masuk ke daftar yang harus dilakukan.
Saya berharap bahwa ketika siapa pun yang menggunakan Angular datang untuk menggunakan Avalon suatu hari, mereka akan berkata: Oh, itu tidak buruk!
Bagikan dua filter yang sangat sederhana: Sembunyikan kata kunci dan pemotongan karakter. Ini juga dapat dimigrasi ke NG. Ada juga filter yang bagus nanti, dan saya akan menambahkannya ke dalamnya.
Kata kunci: Avalon, kustom, filter, Cina, karakter panjang, terpotong, terpotong, karakter tersembunyi, sudut
Sembunyikan kata kunci
Anda mungkin perlu menyembunyikan beberapa informasi kunci di beberapa halaman ujung depan (jika Anda benar -benar ingin menyembunyikannya, Anda masih perlu menanganinya di bagian belakang), maka Anda dapat menggunakan:
/*** Kode kunci dalam string tersembunyi, karakter tersembunyi default untuk '*' ** Misalnya, nomor ponsel tersembunyi adalah: 1890000000 - 189 **** 0000; {{str | hide_code (3,4, '*')}}* @param str* @param pos start position* @param Jumlah panjang karakter diganti* @param newChar menggantikan karakter/string* @returns {*}*/avalon.filters.hide_code = function (str, pos, panjang, baru) {pos = Pos = Pos = Pos = POSTERTER (POS, POS, POS, POS, POS, PANCAR) {POS/POSTERS.HIDER = POS, POS, POS, POS, POS, POS) {Hide = 0; panjang = panjang || 0; newChar = newChar || ';Pemotongan karakter panjang (diiris berdasarkan karakter, akun Cina untuk dua karakter - versi yang ditingkatkan)
Filter Avalon Truncate asli dicegat sesuai dengan fakta bahwa baik Cina dan Inggris menempati satu karakter. Filter ini ditingkatkan untuk mencegat dua karakter dalam bahasa Cina dan satu karakter dalam bahasa Inggris untuk mencegat
/*** Potong string panjang, potong panjang karakter, Cina menempati dua karakter; {{str | truncatex (4, '...')}}* @param str* @param panjang, panjang string baru (dihitung menurut karakter bahasa Inggris, satu bahasa Cina menempati dua karakter), jumlah karakter yang mengandung pemotongan* @param, field {function = function (return {function {return {function {function {function {return {function {function {function {function {function {function {return {function {function {function {function {function {return {return {return {return {return {return new Chines_Pattern =/[/u4e00-/u9fa5] | [/ufe30-/uffa0]/gi; // [/u4e00-/u9fa5] mewakili karakter Cina, [/ufe30-/uffa0] mewakili strip lebar-lebar = str || ""; panjang = panjang || 30; pemotongan = tipe pemotongan === "string"? pemotongan: "..."; var cina = fungsi {return cinence_pattern.exec (s)? true: false;}; var calcsize = function (sumber) {var strtemp = source.replace (cina_pattern, "aa"); return strtemp.length;}; var recursion = fungsi (sumber, panjang) {if (sumber) <= panjang || (! Chinain (sumber)) {if sumber (sumber) <= length || (! Chinain (sumber)) {if sumber; 1), panjang);}}; var slicelength = length - truncation.length; return calcsize (str)> length? rekursi (str.slice (0, panjang slicel), slicelength) + pemotongan: string (str);}Di atas adalah pengetahuan yang relevan tentang intersepsi karakter panjang Avalon Cina, persembunyian karakter kata kunci, dan filter khusus yang diperkenalkan kepada Anda. Saya harap ini akan membantu Anda. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas Anda tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!