SEAJS เป็นกรอบการโหลดโมดูล JavaScript ที่เป็นไปตามข้อกำหนดของ CommonJS มันเป็นเครื่องมือในการโหลดโมดูลที่ทันสมัยสำหรับการพัฒนาเว็บให้ประสบการณ์ที่เรียบง่ายและดีที่สุด Sea.js ได้รับการดูแลร่วมกันโดย Alibaba, Tencent และ บริษัท อื่น ๆ
ประโยชน์ของการใช้ Sea.js:
Sea.js มีการเขียนโค้ดที่เรียบง่ายและเป็นธรรมชาติและวิธีการจัดระเบียบด้วยคุณสมบัติหลักต่อไปนี้:
ข้อกำหนดนิยามโมดูลที่เรียบง่ายและเป็นมิตร: SEA.JS ติดตามข้อกำหนด CMD และสามารถเขียนรหัสโมดูลเช่น Node.js.
การจัดระเบียบรหัสตามธรรมชาติและใช้งานง่าย: การโหลดโดยอัตโนมัติของการพึ่งพาและการกำหนดค่าที่กระชับและชัดเจนช่วยให้เราเพลิดเพลินไปกับการเข้ารหัสมากขึ้น
Sea.js ยังมีปลั๊กอินทั่วไปซึ่งมีประโยชน์มากสำหรับการดีบักการพัฒนาและการเพิ่มประสิทธิภาพประสิทธิภาพและมีอินเทอร์เฟซที่ขยายได้
ด้านล่างฉันจะแนะนำสามโมดูลของทะเล js
ใช้การส่งออกการส่งออกเป็นวัตถุที่ให้อินเทอร์เฟซโมดูลไปด้านนอก
กำหนด (ฟังก์ชั่น (ต้องการ, การส่งออก, โมดูล) {var a = ต้องการ ("./ init"); var fun1 = function () {return a.write ("โมดูลหลักเรียกวิธีการเขียนของโมดูล init");}; exports.fun1 = fun1;});นอกเหนือจากการเพิ่มสมาชิกลงในวัตถุส่งออกแล้วคุณยังสามารถใช้ Return เพื่อให้อินเทอร์เฟซโดยตรงกับภายนอก
กำหนด (ฟังก์ชั่น (ต้องการ, การส่งออก, โมดูล) {var a = ต้องการ ("./ init"); var fun1 = function () {return a.write ("โมดูลหลักเรียกวิธีการเขียนของโมดูล init");}; return {fun1: fun1}}))หากโมดูลไม่มีตรรกะทางธุรกิจเพียงแค่ส่งคืนวัตถุก็สามารถทำให้ง่ายขึ้นต่อไปนี้
กำหนด ({fun1: function () {Alert ("Fun1 Call of Module Main ประสบความสำเร็จ")}});อีกวิธีหนึ่งคือการจัดเตรียมอินเทอร์เฟซแบบครบวงจรผ่านโมดูลส่งออกตัวอย่างเช่น:
กำหนด (ฟังก์ชั่น (ต้องการ, การส่งออก, โมดูล) {var a = ต้องการ ("./ init"); // เป็นไดเรกทอรีปัจจุบัน ../ คือไดเรกทอรีด้านบน/คือไดเรกทอรีรากไดเรกทอรี var fun1 = ฟังก์ชั่น () {return a.write ("โมดูลการโทรหลักของโมดูลเริ่มต้น");}; การแจ้งเตือน ("bb")}; module.exports = {fun1: fun1}});การส่งออกเป็นเพียงการอ้างอิงถึงโมดูลส่งออก เมื่อมีการกำหนดส่งออกใหม่ภายในวิธีการค่าของโมดูลการส่งออกจะไม่เปลี่ยนแปลง ดังนั้นการกำหนดค่าการส่งออกจึงไม่ถูกต้อง วิธีการข้างต้นจะเปิดเผยความสนุกภายนอก 1 เท่านั้น วิธีการข้างต้นการกำหนด B ไม่ถูกต้องและไม่สามารถใช้เพื่อเปลี่ยนอินเตอร์เฟสโมดูล
Exports.async ()
lequire.async (id || [], โทรกลับ?)
วิธี require.async ใช้ในการโหลดโมดูลแบบอะซิงโครนัสภายในโมดูลและเรียกใช้การโทรกลับที่ระบุหลังจากการโหลดเสร็จสมบูรณ์ พารามิเตอร์การโทรกลับเป็นทางเลือก
กำหนด (ฟังก์ชั่น (ต้องการ, การส่งออก, โมดูล) {require.async ('./ init', ฟังก์ชั่น (a) {a.write ("โมดูลหลักเรียกวิธีการเขียนของโมดูล init")}); require.async (['./init', "การค้นหา" แนะนำ ")});});โมดูลโมดูลเป็นวัตถุที่เก็บคุณสมบัติและวิธีการบางอย่างที่เกี่ยวข้องกับโมดูลปัจจุบัน
1 โมดูลสตริง
การระบุโมดูลที่ไม่ซ้ำกัน
2 module.uri สตริง
เส้นทางโมดูลสัมบูรณ์ที่ได้รับตามกฎการวิเคราะห์เส้นทางของระบบโมดูล โดยทั่วไปค่าของ module.id คือ module.uri ซึ่งเหมือนกันทุกประการ
3 โมดูลอาร์เรย์พึ่งพาอาศัยกัน
การพึ่งพาเป็นอาร์เรย์ที่แสดงถึงการพึ่งพาของโมดูลปัจจุบัน