Seajs adalah kerangka pemuatan modul JavaScript yang mengikuti spesifikasi CommonJS. Ini adalah alat pemuatan modul modern untuk pengembangan web, memberikan pengalaman modular yang sederhana dan terbaik. Sea.js dikelola bersama oleh Alibaba, Tencent dan perusahaan lain.
Manfaat menggunakan Sea.js:
Sea.js mengejar metode penulisan dan organisasi yang sederhana dan alami, dengan fitur -fitur inti berikut:
Spesifikasi Definisi Modul Sederhana dan Ramah: Sea.js mengikuti spesifikasi CMD dan dapat menulis kode modul seperti Node.js.
Organisasi kode alami dan intuitif: Pemuatan otomatis dependensi dan konfigurasi yang ringkas dan jelas memungkinkan kami untuk menikmati lebih banyak pengkodean.
Sea.js juga menyediakan plugin umum, yang sangat membantu untuk pengembangan debugging dan optimasi kinerja, dan memiliki antarmuka yang dapat diperluas.
Di bawah ini saya akan memperkenalkan tiga modul Sea.js
Gunakan ekspor, ekspor adalah objek yang menyediakan antarmuka modul ke luar.
define (function (membutuhkan, ekspor, modul) {var a = membutuhkan ("./ init"); var fun1 = function () {return A.write ("Modul utama memanggil metode tulis modul init");}; exports.fun1 = fun1;});Selain menambahkan anggota ke objek Ekspor, Anda juga dapat menggunakan pengembalian untuk menyediakan antarmuka langsung ke luar.
define (function (required, exports, module) {var a = membutuhkan ("./ init"); var fun1 = function () {return a.write ("Modul utama memanggil metode write dari modul init");}; return {fun1: fun1}})Jika modul tidak memiliki logika bisnis, cukup kembalikan objek, itu dapat disederhanakan untuk yang berikut ini
define ({fun1: function () {alert ("Fun1 Call of Module Main berhasil")}});Cara lain adalah menyediakan antarmuka terpadu melalui modul. Exports, misalnya:
define (fungsi (membutuhkan, ekspor, modul) {var a = membutuhkan ("./ init"); // adalah direktori saat ini ../ adalah direktori atas/adalah direktori root var fun1 = function () {return A.write ("Modul Module Call Metode Modul Init");}; Exports.B = function () {/No Makna alert ("bb")}; module.exports = {fun1: fun1}});Ekspor hanyalah referensi ke modul. Exports. Saat menugaskan kembali ekspor di dalam metode, nilai modul. Exports tidak diubah. Oleh karena itu, menetapkan nilai ekspor tidak valid. Metode di atas hanya memperlihatkan kesenangan eksternal1. Metode di atas penugasan B tidak valid dan tidak dapat digunakan untuk mengubah antarmuka modul.
Exports.async ()
membutuhkan.async (id || [], callback?)
Metode yang memerlukan.async digunakan untuk memuat modul secara asinkron di dalam modul dan menjalankan panggilan balik yang ditentukan setelah pemuatan selesai. Parameter panggilan balik adalah opsional.
Define (function (membutuhkan, ekspor, modul) {membutuhkan.async ('./ init', function (a) {A.write ("Modul utama memanggil metode penulisan modul init")}); membutuhkan.async (['./ init', ". Cari"], function (a, b) {a.write ("Module Module Calling The Module (" Module Module ("Module Module (" Module ("Module (" Module (" diperkenalkan ")});});Modul Modul adalah objek yang menyimpan beberapa properti dan metode yang terkait dengan modul saat ini.
1 Module.id String
Identifikasi unik dari modul.
2 Module.uri String
Jalur modul absolut yang diperoleh sesuai dengan aturan analisis jalur sistem modul. Secara umum, nilai modul.id adalah module.uri, yang persis sama.
3 Modul. Array Dependensi
Ketergantungan adalah array yang mewakili dependensi dari modul saat ini.