cari
Rumahhujung hadapan webtutorial jsButang Generasi Seterusnya: Melaksanakan Corak Perintah melalui Komponen Web

Next-Generation Buttons: Implementing the Command Pattern through Web Components

Apabila saya mula mereka bentuk antara muka, saya sentiasa menghadapi isu bahawa pengendali acara dilampirkan terus pada butang, yang mengehadkan fleksibiliti interaksi komponen. Masalahnya ialah butang standard tidak boleh menawarkan sebarang tingkah laku lain. Apa yang saya perlukan ialah pengasingan logik dan pengurusan tindakan dinamik, yang tidak tersedia apabila menggunakan butang standard 'di luar kotak.' Dalam artikel ini, saya akan mencadangkan penyelesaian tentang cara menyesuaikan butang menggunakan Komponen Web dan corak 'Arahan', membuka kemungkinan baharu untuk antara muka yang lebih fleksibel dan berskala.

Butang Lebih Daripada Ia Nampak

Biasanya, apabila kita berfikir tentang butang, kita menganggapnya sebagai elemen kawalan grafik yang menyediakan cara mudah untuk mencetuskan beberapa peristiwa, tindakan atau perubahan dalam keadaan antara muka. Ini adalah definisi yang sangat mudah dan mudah, yang sesuai dengan pemahaman harian kita tentang elemen antara muka pengguna dalam aplikasi web.

Walau bagaimanapun, apabila kami menemui butang dalam konteks pembangunan web, apabila HTML dan JavaScript terlibat, perkara pertama yang terlintas di fikiran ialah teg standard, yang merupakan alat yang paling biasa digunakan untuk membuat butang pada halaman web. Teg ini biasanya kelihatan seperti ini:

<button onclick="myFunction()">Click me</button>

Tetapi jika kita memikirkannya, teg ini, semasa berfungsi sebagai butang, tidak mencerminkan sepenuhnya semua kemungkinan aspek dan fungsi yang boleh dilakukan oleh butang dalam konteks interaksi pengguna yang lebih luas dengan antara muka.

Setelah memeriksa dengan lebih dekat definisi butang, seseorang mungkin mendapati bahawa butang itu tidak memberikan sebarang maklumat tentang rupa butang itu, cara ia harus bertindak atau cara ia harus mencetuskan tindakan. Dalam konteks ini, tiada pemahaman yang jelas tentang apa yang dimaksudkan dengan perkataan "cara mudah" untuk mencetuskan tindakan, mahupun cara hubungan antara butang dan tindakan itu diwujudkan. Kami hanya melihat struktur asas butang, yang, apabila diklik, memanggil beberapa kaedah. Tetapi pada hakikatnya, kesederhanaan ini menyembunyikan pelbagai kemungkinan dan pendekatan yang lebih luas. Oleh itu, persoalan timbul: mungkin butang itu lebih daripada sekadar teg yang kita lihat dalam contoh di atas?

Cara Mudah untuk Mencetuskan Tindakan

Mari kita mendekati konsep butang dari perspektif yang lebih falsafah, menyelidiki intipati dan fungsinya. Apakah yang sebenarnya diwakili oleh butang? Jika kita menganggap intipati jag sebagai kekosongannya, intipati butang boleh didapati dalam keupayaannya untuk memulakan tindakan. Butang bukan sekadar elemen antara muka pengguna; ia adalah mekanisme yang mencetuskan proses khusus yang telah wujud dalam konteks aplikasi. Tindakan yang akan dilakukan berlaku dalam aplikasi, dalam konteks keseluruhan sistem, tetapi permulaan tindakan itu - permulaannya - adalah fungsi butang. Oleh itu, kami melihat bahawa butang berfungsi sebagai sejenis pencetus, melancarkan tindakan dalam konteks sistem luaran yang lebih luas.

Apabila pengguna mengklik butang, mereka menjangkakan bahawa klik ini akan membawa kepada tindakan tertentu. Akibatnya, butang itu dikaitkan dengan tanggungjawab untuk memulakan tindakan ini. Dalam erti kata lain, butang menjadi pautan antara pengguna dan tindakan yang harus diikuti. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa kaedah atau fungsi yang benar-benar menjalankan tindakan itu tidak seharusnya menyedari bahawa butang itu adalah yang mencetuskannya. Perbezaan antara perkara yang memulakan tindakan dan perkara yang melaksanakannya adalah aspek penting yang membolehkan kami mengekalkan fleksibiliti dan kemudahan interaksi dalam sistem yang lebih kompleks.

Apabila butang secara langsung melakukan tindakan atau apabila kaedah melaksanakan tindakan bergantung pada butang itu sendiri, kami berhadapan dengan sistem yang agak kompleks dan saling bergantung. Jika kita ingin memudahkan sistem sedemikian, adalah perlu untuk memecahkannya kepada bahagian yang lebih mudah dan bebas. Dan di sini kami menyimpulkan bahawa memudahkan proses memulakan tindakan terutamanya melibatkan pengasingan proses permulaan daripada tindakan itu sendiri. Dan oleh kerana dalam konteks JavaScript, pemula sering dirujuk sebagai peristiwa, kami bercakap secara khusus tentang memisahkan acara sebagai pemula daripada logik yang melaksanakan tindakan.

Pengasingan Acara dan Pengendali

Mengapa penting untuk memisahkan acara daripada pengendali?

Pertama sekali, mengasingkan acara daripada pengendali dengan ketara meningkatkan kebolehbacaan kod dan menggalakkan penciptaan lebih banyak penyelesaian modular. Apabila logik butang dan pengendalinya saling berkait, atau, lebih teruk lagi, apabila pengendali ialah fungsi tanpa nama, kod tersebut menjadi amat sukar untuk dibaca dan dianalisis. Ini boleh membawa kepada masalah semasa menyelenggara dan mengemas kini projek, kerana memahami perkara yang sebenarnya dilakukan oleh butang dan perubahan yang diperlukan menjadi tugas yang mencabar. Sebaliknya, apabila pengendali diekstrak ke dalam fungsi berasingan yang dinamakan dengan jelas yang menggambarkan tindakan yang dilakukan, struktur kod menjadi lebih telus. Pembangun segera memahami perkara yang berlaku apabila butang diklik, dan boleh mengubah suai kelakuan elemen dengan lebih mudah tanpa perlu menyelidiki logik yang lain. Oleh itu, pemisahan memudahkan kedua-dua membaca dan membuat perubahan pada kod.

Kedua, memisahkan logik peristiwa dan pengendali membuka peluang untuk menggunakan semula pengendali merentas bahagian aplikasi yang berbeza. Apabila pengendali diletakkan dalam fungsinya sendiri, ia boleh digunakan bukan sahaja pada satu butang, tetapi kepada banyak orang lain yang mempunyai kelakuan yang serupa. Contohnya, berbilang butang yang melakukan tindakan yang sama boleh menggunakan pengendali yang sama, yang mengurangkan pertindihan kod dan meningkatkan kecekapan. Tambahan pula, pengendali boleh dicetuskan bukan sahaja melalui butang tetapi juga melalui cara lain, seperti panggilan program atau tindakan yang dimulakan oleh bahagian lain antara muka. Ini meluaskan kefungsian aplikasi anda dengan ketara, meningkatkan fleksibiliti dan kebolehskalaannya.

Ketiga, pengasingan acara dan pengendali membolehkan lebih fleksibiliti dalam butang itu sendiri. Jika kelakuan butang itu kini ditentukan bukan dalam butang itu sendiri, tetapi melalui pengendali yang berasingan, ia menjadi mudah untuk mengubah suai tindakannya atau menugaskannya semula bergantung pada situasi. Ini amat penting dalam projek dengan antara muka dinamik, di mana gelagat elemen boleh berubah sebagai tindak balas kepada tindakan pengguna atau perubahan dalam keadaan aplikasi. Pendekatan ini membolehkan antara muka mudah disesuaikan dengan keperluan yang berubah tanpa mengganggu struktur kod keseluruhan.

Keempat, pengasingan acara dan pengendali adalah penting untuk kebolehujian, terutamanya dalam projek besar. Apabila pengendali acara diekstrak ke dalam fungsi yang berasingan, mengujinya menjadi lebih mudah, kerana ia boleh diuji secara bebas daripada antara muka. Anda boleh mengasingkan pengendali dan menguji cara ia berfungsi dengan pelbagai parameter, tanpa perlu risau tentang interaksi dengan bahagian antara muka yang lain. Ini menjadikan ujian lebih mudah, meningkatkan kebolehpercayaan dan kestabilan aplikasi sambil meminimumkan kemungkinan ralat.

Memisahkan acara butang dan pengendali ialah langkah penting ke arah seni bina kod yang lebih bersih, fleksibel dan boleh diselenggara. Ini amat penting dalam projek yang kompleks, di mana interaksi antara elemen antara muka menjadi lebih rumit dan saling bergantung. Pendekatan ini membantu meningkatkan kestabilan sistem, menjadikannya lebih mudah untuk mengembangkan dan mengubah suai aplikasi serta mengurangkan risiko ralat yang timbul semasa perubahan ini.

Contoh untuk memisahkan acara butang daripada pengendalinya boleh didapati dalam mana-mana panduan pemula.

<button onclick="myFunction()">Click me</button>

Jika butang boleh menyampaikan bukan sahaja konteks interaksi tetapi juga niat pengguna secara eksplisit dalam acara tersebut, ia akan memudahkan seni bina dengan ketara. Pengendali boleh menumpukan pada melaksanakan tugas daripada memberikan logik kepada acara.

Ini menyerlahkan keperluan untuk beralih daripada pemahaman tradisional tentang butang sebagai pemula acara semata-mata. Sebaliknya, ia mencadangkan untuk menggunakan model yang lebih maju di mana butang bertindak sebagai jambatan antara niat pengguna dan logik aplikasi.

Menggunakan Corak Perintah

Untuk mencipta model yang lebih maju bagi pengendalian acara, kami boleh memanfaatkan corak Perintah, yang membolehkan peristiwa dikaitkan dengan logik aplikasi pada tahap abstraksi yang lebih tinggi. Ini boleh dicapai dengan memperkenalkan lapisan yang mengubah peristiwa biasa kepada arahan seperti saveDocument atau deleteItem. Menggunakan pendekatan ini, sesuatu peristiwa menjadi lebih daripada sekadar isyarat bahawa sesuatu telah berlaku — ia berubah menjadi perkara yang dimaksudkan: pemula tindakan, seperti yang dibincangkan sebelum ini dalam artikel.

Tetapi ini menimbulkan persoalan: mengapa pembangun acara JavaScript tidak melaksanakan corak Perintah dari awal? Mengapakah acara direka bentuk seperti sekarang? Dan mengapakah acara perlu pada mulanya?

Apabila HTML dan teknologi berkaitan seperti DOM dan JavaScript pada mulanya dibangunkan, matlamat utama mereka adalah untuk mencipta struktur ringkas untuk dokumen hiperteks yang membolehkan pengguna berinteraksi dengan halaman web. Pada masa itu, interaksi pengguna adalah terhad dengan ketara, dan model pengendalian peristiwa tidak direka bentuk untuk menampung mekanisme kompleks seperti corak Perintah. Adalah penting untuk memahami bahawa web awal dibangunkan untuk memudahkan penciptaan dan pengurusan kandungan, bukan untuk menyediakan alat canggih untuk logik sisi klien yang kompleks.

Pada tahun 1990-an, apabila HTML dan web sedang dibuat, tumpuan mereka adalah untuk menyediakan cara yang mudah untuk mempersembahkan dokumen hiperteks dengan interaksi pengguna yang minimum. Matlamat utama adalah penyerahan data kepada pelayan dan bukannya melaksanakan logik kompleks dalam penyemak imbas. Butang dan borang digunakan terutamanya untuk menghantar data, bukan untuk memulakan proses sisi klien. Semua pengiraan dan pemprosesan data telah dikendalikan pada pelayan, dengan butang berfungsi sebagai elemen antara muka yang mencetuskan penyerahan data ke bahagian belakang.

Corak Perintah memerlukan struktur yang lebih canggih yang melibatkan pemisahan yang jelas antara antara muka dan logik pemprosesan, serta mekanisme untuk menentukan tindakan tepat yang akan dilaksanakan. Idea ini hanya menjadi relevan kemudian, kerana keperluan untuk antara muka dinamik dan interaktiviti yang lebih besar dalam aplikasi web semakin meningkat. Interaksi dinamik dan kompleks, seperti mencetuskan logik pihak pelanggan melalui peristiwa, memerlukan pendekatan baharu, termasuk penggunaan corak Perintah.

Bolehkah Corak Perintah Digunakan pada Butang Hari Ini? Ya, boleh. Walaupun butang HTML standard tidak menyokong corak Perintah secara langsung, teknologi moden seperti acara tersuai membolehkan kami mencipta mekanisme yang serupa. Sebagai contoh, kami telah meneroka cara sifat butiran boleh digunakan untuk menghantar data tambahan dengan acara.

Walau bagaimanapun, pendekatan ini masih tidak sesuai, kerana ia memerlukan mewujudkan pelaksanaan berasingan untuk setiap butang dalam antara muka. Ini menambahkan kerumitan tambahan dan menjadikan penskalaan sistem sedemikian lebih mencabar.

Komponen Web

Memanfaatkan Komponen Web untuk memodenkan butang dan menyelaraskannya dengan corak Perintah ialah pendekatan yang menjanjikan yang boleh meningkatkan kedua-dua seni bina dan fleksibiliti interaksi dalam projek anda dengan ketara. Komponen Web menyediakan alatan berkuasa untuk mencipta elemen antara muka boleh guna semula yang boleh disepadukan dengan lancar ke dalam pelbagai bahagian aplikasi.

Daripada menulis pengendali berasingan untuk setiap butang, anda boleh mencipta komponen bersatu yang bertindak sebagai butang dengan keupayaan tambahan untuk menghantar arahan. Pendekatan ini bukan sahaja menambah baik struktur kod tetapi juga meningkatkan kebolehbacaan dan kebolehselenggaraannya.

Berikut ialah contoh asas komponen sedemikian:

<button onclick="myFunction()">Click me</button>

Komponen Butang dan Pengawal

Apabila komponen butang menghantar pengecam arahan dan kemungkinan parameter tambahan, ia mewujudkan asas untuk seni bina yang lebih maju. Dalam persediaan ini, komponen yang mengandungi butang dan melanggan acaranya pada asasnya bertindak sebagai pengawal yang memproses arahan yang melalui acara tersebut.

Dalam corak seni bina seperti MVC (Model-View-Controller), pengawal berfungsi sebagai perantara antara model, yang mewakili data dan pandangan, yang membentuk antara muka pengguna. Ia menerima input pengguna, seperti klik butang dan mengurus perubahan yang terhasil pada data atau keadaan, yang kemudiannya ditunjukkan dalam antara muka.

Penggunaan pengawal dalam komponen menawarkan beberapa kelebihan utama. Pertama, ia merangkum logik untuk melaksanakan arahan, memastikan kod aplikasi utama bebas daripada kerumitan yang tidak perlu. Butiran pelaksanaan kekal tersembunyi dalam pengawal itu sendiri. Kedua, pendekatan ini meningkatkan modulariti, membenarkan butang untuk digunakan semula hanya dengan menghantar arahan dan parameter yang berbeza. Ia juga mengurangkan gandingan dalam aplikasi, kerana perubahan pada logik pengendalian arahan memerlukan pengubahsuaian hanya dalam pengawal, tanpa menjejaskan bahagian lain sistem. Akhir sekali, pengawal memberikan fleksibiliti yang ketara. Mereka boleh mengendalikan kedua-dua arahan yang mudah, seperti "simpan" atau "padam" dan tindakan yang lebih kompleks, manakala komponen butang kekal mudah dan tertumpu semata-mata pada peranan utamanya.

Seni bina ini memudahkan pemisahan kebimbangan yang bersih. Komponen butang memancarkan peristiwa tersuai yang merangkumi arahan dan data berkaitannya, manakala komponen induk, bertindak sebagai pengawal, mendengar acara ini. Pengawal memproses arahan, berinteraksi dengan model data jika perlu, dan mengemas kini antara muka pengguna dengan sewajarnya. Pendekatan ini menghasilkan seni bina yang lebih bersih dan berskala yang lebih mudah untuk dipanjangkan dan diselenggara, sambil memastikan komponen butang boleh diguna semula dan bebas daripada logik yang dicetuskan olehnya.

Kesimpulan

Kesimpulannya, pendekatan di mana butang bukan sahaja mencetuskan tindakan tetapi juga menghantar arahan dengan data yang diperlukan melalui acara adalah contoh terbaik untuk menggunakan corak "Perintah". Kaedah ini meningkatkan organisasi interaksi antara muka dengan ketara dengan memisahkan logik pelaksanaan perintah daripada elemen antara muka, meningkatkan fleksibiliti dan kebolehskalaan aplikasi.

Bagaimanapun, pendekatan sedemikian masih agak jarang dalam amalan. Daripada memanfaatkan keupayaan hebat Komponen Web untuk mencipta penyelesaian universal dan fleksibel, banyak pembangun terus bergantung pada butang standard yang terikat secara langsung dengan pengendali acara. Ini berkemungkinan disebabkan oleh tabiat dan kekurangan kesedaran tentang kelebihan pendekatan ini, yang membawa kepada penggunaan butang yang lebih konvensional sebagai pencetus mudah untuk tindakan.

Bertekad untuk mengubah keadaan ini, saya membangunkan perpustakaan KoiCom, di mana banyak komponen telah disesuaikan dan dipertingkatkan. Khususnya, butang dalam pustaka ini mengikut corak "Perintah", menghantar data dan arahan yang diperlukan melalui acara. Pendekatan ini sangat meningkatkan modulariti, fleksibiliti dan kebolehselenggaraan, menghapuskan logik berlebihan dan memudahkan cara arahan diurus.

Dokumentasi KoiCom
KoiCom github

Akhirnya, saya berharap penyelesaian sedemikian akan membantu pembangun menggunakan pendekatan yang lebih moden untuk reka bentuk antara muka, menjadikan aplikasi lebih berskala dan lebih mudah diselenggara.

Atas ialah kandungan terperinci Butang Generasi Seterusnya: Melaksanakan Corak Perintah melalui Komponen Web. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
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
Peranan JavaScript: Membuat Web Interaktif dan DinamikPeranan JavaScript: Membuat Web Interaktif dan DinamikApr 24, 2025 am 12:12 AM

JavaScript adalah di tengah -tengah laman web moden kerana ia meningkatkan interaktiviti dan dinamik laman web. 1) Ia membolehkan untuk menukar kandungan tanpa menyegarkan halaman, 2) memanipulasi laman web melalui Domapi, 3) menyokong kesan interaktif kompleks seperti animasi dan drag-and-drop, 4) mengoptimumkan prestasi dan amalan terbaik untuk meningkatkan pengalaman pengguna.

C dan JavaScript: Sambungan dijelaskanC dan JavaScript: Sambungan dijelaskanApr 23, 2025 am 12:07 AM

C dan JavaScript mencapai interoperabilitas melalui webassembly. 1) Kod C disusun ke dalam modul WebAssembly dan diperkenalkan ke dalam persekitaran JavaScript untuk meningkatkan kuasa pengkomputeran. 2) Dalam pembangunan permainan, C mengendalikan enjin fizik dan rendering grafik, dan JavaScript bertanggungjawab untuk logik permainan dan antara muka pengguna.

Dari laman web ke aplikasi: Aplikasi pelbagai JavaScriptDari laman web ke aplikasi: Aplikasi pelbagai JavaScriptApr 22, 2025 am 12:02 AM

JavaScript digunakan secara meluas di laman web, aplikasi mudah alih, aplikasi desktop dan pengaturcaraan sisi pelayan. 1) Dalam pembangunan laman web, JavaScript mengendalikan DOM bersama -sama dengan HTML dan CSS untuk mencapai kesan dinamik dan menyokong rangka kerja seperti JQuery dan React. 2) Melalui reaktnatif dan ionik, JavaScript digunakan untuk membangunkan aplikasi mudah alih rentas platform. 3) Rangka kerja elektron membolehkan JavaScript membina aplikasi desktop. 4) Node.js membolehkan JavaScript berjalan di sisi pelayan dan menyokong permintaan serentak yang tinggi.

Python vs JavaScript: Gunakan Kes dan Aplikasi MembandingkanPython vs JavaScript: Gunakan Kes dan Aplikasi MembandingkanApr 21, 2025 am 12:01 AM

Python lebih sesuai untuk sains data dan automasi, manakala JavaScript lebih sesuai untuk pembangunan front-end dan penuh. 1. Python berfungsi dengan baik dalam sains data dan pembelajaran mesin, menggunakan perpustakaan seperti numpy dan panda untuk pemprosesan data dan pemodelan. 2. Python adalah ringkas dan cekap dalam automasi dan skrip. 3. JavaScript sangat diperlukan dalam pembangunan front-end dan digunakan untuk membina laman web dinamik dan aplikasi satu halaman. 4. JavaScript memainkan peranan dalam pembangunan back-end melalui Node.js dan menyokong pembangunan stack penuh.

Peranan C/C dalam JavaScript Jurubah dan PenyusunPeranan C/C dalam JavaScript Jurubah dan PenyusunApr 20, 2025 am 12:01 AM

C dan C memainkan peranan penting dalam enjin JavaScript, terutamanya digunakan untuk melaksanakan jurubahasa dan penyusun JIT. 1) C digunakan untuk menghuraikan kod sumber JavaScript dan menghasilkan pokok sintaks abstrak. 2) C bertanggungjawab untuk menjana dan melaksanakan bytecode. 3) C melaksanakan pengkompil JIT, mengoptimumkan dan menyusun kod hot-spot semasa runtime, dan dengan ketara meningkatkan kecekapan pelaksanaan JavaScript.

JavaScript in Action: Contoh dan projek dunia nyataJavaScript in Action: Contoh dan projek dunia nyataApr 19, 2025 am 12:13 AM

Aplikasi JavaScript di dunia nyata termasuk pembangunan depan dan back-end. 1) Memaparkan aplikasi front-end dengan membina aplikasi senarai TODO, yang melibatkan operasi DOM dan pemprosesan acara. 2) Membina Restfulapi melalui Node.js dan menyatakan untuk menunjukkan aplikasi back-end.

JavaScript dan Web: Fungsi teras dan kes penggunaanJavaScript dan Web: Fungsi teras dan kes penggunaanApr 18, 2025 am 12:19 AM

Penggunaan utama JavaScript dalam pembangunan web termasuk interaksi klien, pengesahan bentuk dan komunikasi tak segerak. 1) kemas kini kandungan dinamik dan interaksi pengguna melalui operasi DOM; 2) pengesahan pelanggan dijalankan sebelum pengguna mengemukakan data untuk meningkatkan pengalaman pengguna; 3) Komunikasi yang tidak bersesuaian dengan pelayan dicapai melalui teknologi Ajax.

Memahami Enjin JavaScript: Butiran PelaksanaanMemahami Enjin JavaScript: Butiran PelaksanaanApr 17, 2025 am 12:05 AM

Memahami bagaimana enjin JavaScript berfungsi secara dalaman adalah penting kepada pemaju kerana ia membantu menulis kod yang lebih cekap dan memahami kesesakan prestasi dan strategi pengoptimuman. 1) aliran kerja enjin termasuk tiga peringkat: parsing, penyusun dan pelaksanaan; 2) Semasa proses pelaksanaan, enjin akan melakukan pengoptimuman dinamik, seperti cache dalam talian dan kelas tersembunyi; 3) Amalan terbaik termasuk mengelakkan pembolehubah global, mengoptimumkan gelung, menggunakan const dan membiarkan, dan mengelakkan penggunaan penutupan yang berlebihan.

See all articles

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

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

VSCode Windows 64-bit Muat Turun

VSCode Windows 64-bit Muat Turun

Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

Muat turun versi mac editor Atom

Muat turun versi mac editor Atom

Editor sumber terbuka yang paling popular

EditPlus versi Cina retak

EditPlus versi Cina retak

Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Inggeris

SublimeText3 versi Inggeris

Disyorkan: Versi Win, menyokong gesaan kod!