RequireJS - ปลั๊กอิน
RequireJS มีปลั๊กอินชุดเล็ก ๆ ซึ่งอนุญาตให้โหลดทรัพยากรประเภทต่างๆเป็นการอ้างอิง ต่อไปนี้เป็นรายการปลั๊กอินที่มีอยู่ใน RequireJS -
- text
- domReady
- i18n
- กำลังโหลด CSS
ข้อความ
ข้อความ plug-in ที่ใช้สำหรับทรัพยากรตามข้อความในการโหลดแบบไม่พร้อมกันซึ่งส่วนใหญ่จะใช้สำหรับการแทรกเนื้อหา HTML ในไฟล์ JavaScript สามารถโหลดได้เมื่อคุณใช้ข้อความ! คำนำหน้าในการเรียกโมดูลที่ต้องการหรือกำหนดและส่งผ่านนามสกุลไฟล์ไปยังปลั๊กอิน เปรียบเทียบกับการโหลดโมดูลปกติปลั๊กอินข้อความจะโหลดโมดูลโดยใช้ XHR และจะไม่เพิ่มโค้ดลงในส่วนหัวเป็นscript แท็ก
ทรัพยากรไฟล์ข้อความสามารถรวมเป็นการอ้างอิงในรหัสเป็น -
require(["mymodule", "text!mymodule.html", "text!mymodule.css"],
function(mymodule, html, css) {
//the html and css variables will be the text
//of the mymodule.html file and mymodule.css files respectively
}
);
domReady
คุณสามารถใช้ RequireJS เพื่อโหลดสคริปต์ก่อนที่ DOM จะพร้อมและนักพัฒนาสามารถโต้ตอบกับ DOM ได้ก็ต่อเมื่อสคริปต์โหลดอย่างสมบูรณ์เท่านั้น บางครั้งสคริปต์สามารถโหลดได้ก่อนที่ DOM จะพร้อมใช้งาน ดังนั้นเพื่อเอาชนะปัญหานี้ RequireJS จึงจัดเตรียมแนวทางสมัยใหม่ที่เรียกว่าเหตุการณ์DOMContentLoadedซึ่งเรียกใช้ฟังก์ชัน domReady เมื่อ DOM พร้อม
require(['domReady'], function(domReady) {
domReady(function() {
//the domReady function is called when DOM is ready
//which is safe to manipulate DOM nodes in this function
});
});
i18n
สามารถใช้ได้กับหลายภาษาที่ให้ i18nรองรับบันเดิลซึ่งจะโหลดโดยอัตโนมัติเมื่อโมดูลหรือการอ้างอิงระบุ "i18n!" คำนำหน้า หากต้องการใช้สิ่งนี้ให้ดาวน์โหลดและวางไว้ในไดเร็กทอรีเดียวกับที่มีไฟล์ JavaScript หลักของคุณ วางปลั๊กอินนี้ในไดเร็กทอรีชื่อ "nls" เพื่อค้นหาไฟล์โลคัลไลเซชันของคุณ
ตัวอย่างเช่นสมมติว่าเรามีไฟล์ js หนึ่งไฟล์ชื่อcountry.js ที่มีเนื้อหาต่อไปนี้และวางไว้ในไดเร็กทอรีเป็นmydirectory / nls / country.js -
define({
"root": {
"india": "india",
"australia": "australia",
"england": "england"
}
});
คุณสามารถเพิ่มการแปลเฉพาะลงในไฟล์ได้โดยใช้fr-fr locale และโค้ดด้านบนจะเปลี่ยนเป็น -
define({
"root": {
"title": "title",
"header": "header",
"description": "description"
},
"es-es": true
});
จากนั้นระบุไฟล์ที่mydirectory / nls / es-es / country.jsโดยมีเนื้อหาดังนี้ -
define({
"root": {
"title": "título",
"header": "cabecera",
"description": "descripción"
},
"es-es": true
});
คุณสามารถตั้งค่าโลแคลได้โดยส่งไปยังปลั๊กอินด้วยความช่วยเหลือของโมดูล config ในไฟล์main.jsดังที่แสดงด้านล่าง -
requirejs.config({
config: {
//set the config for the i18n plugin
i18n: {
locale: 'es-es'
}
}
});
โหลด CSS โดยใช้ RequireJS
คุณสามารถใช้ปลั๊กอินบางตัวเพื่อโหลดไฟล์ CSS โดยต่อท้ายลิงก์ส่วนหัวเพื่อโหลดไฟล์ CSS
คุณสามารถโหลด CSS ได้โดยใช้ฟังก์ชันของคุณเองดังที่แสดงด้านล่าง -
function myCss(url) {
var mylink = document.createElement("mylink");
mylink.type = "text/css";
mylink.rel = "stylesheet";
mylink.href = url;
document.getElementsByTagName("head")[0].appendChild(mylink);
}