RequireJS විසින් AMD API (ප්රභවය) ක්රියාත්මක කරයි.
CommonJS යනු exports
මොඩියුලයේ අන්තර්ගතය නිර්වචනය කරන වස්තුවක ආධාරයෙන් මොඩියුල නිර්වචනය කිරීමේ ක්රමයකි . සරලව කිවහොත්, CommonJS ක්රියාත්මක කිරීම මේ ආකාරයෙන් ක්රියාත්මක විය හැකිය:
// someModule.js
exports.doSomething = function() { return "foo"; };
//otherModule.js
var someModule = require('someModule'); // in the vein of node
exports.doSomethingElse = function() { return someModule.doSomething() + "bar"; };
මූලික වශයෙන්, require()
පරායත්තතාවයන් ලබා ගැනීම සඳහා ශ්රිතයක්, exports
මොඩියුල අන්තර්ගතයන් අපනයනය කිරීමට විචල්යයක් සහ මොඩියුල හඳුනාගැනීමක් (මෙම මොඩියුලයට අදාළව මොඩියුලයේ පිහිටීම විස්තර කරන) පරායත්තතා ( ප්රභවය ) අවශ්ය බව පොදු ජේඑස් නියම කරයි. ). CommonJS හි ඔබ සඳහන් කළ Node.js ඇතුළු විවිධ ක්රියාත්මක කිරීම් තිබේ .
CommonJS විශේෂයෙන් නිර්මාණය කර ඇත්තේ බ්රව්සර් මනසේ තබාගෙන නොවේ, එබැවින් එය බ්රව්සර් පරිසරයට හොඳින් ගැලපෙන්නේ නැත ( මට ඇත්ත වශයෙන්ම මේ සඳහා ප්රභවයක් නොමැත - එය අවශ්ය වන්නේ JJ වෙබ් අඩවිය ඇතුළුව සෑම තැනකම ය . ) පෙනෙන විදිහට, මේ සඳහා යමක් තිබේ අසමමුහුර්ත පැටවීම ආදිය සමඟ කරන්න.
අනෙක් අතට, RequireJS විසින් AMD ක්රියාත්මක කරන අතර එය බ්රව්සර් පරිසරයට ( ප්රභවයට ) ගැලපෙන පරිදි නිර්මාණය කර ඇත . පෙනෙන විදිහට, AMD පොදු ජේඑස් ප්රවාහන ආකෘතියේ භ්රමණය වීමක් ලෙස ආරම්භ වී එහි මොඩියුල අර්ථ දැක්වීමේ API බවට පරිණාමය විය. එබැවින් දෙක අතර සමානකම්. AMD හි ඇති නව ලක්ෂණය වන්නේ define()
පැටවීමට පෙර මොඩියුලයට එහි පරායත්තතා ප්රකාශ කිරීමට ඉඩ දෙන ශ්රිතයයි. උදාහරණයක් ලෙස, අර්ථ දැක්වීම විය හැක්කේ:
define('module/id/string', ['module', 'dependency', 'array'],
function(module, factory function) {
return ModuleContents;
});
ඉතින්, CommonJS සහ AMD යනු විවිධ ක්රියාත්මක කිරීම් ඇති ජාවාස්ක්රිප්ට් මොඩියුල අර්ථ දැක්වීමේ API ය, නමුත් දෙකම එකම මූලාරම්භයකින් පැමිණේ.
- මොඩියුල පරායත්තතාවයන් අසමමුහුර්තව පැටවීමට සහාය වන නිසා AMD බ්රව්සරයට වඩාත් ගැලපේ.
- RequireJS ක ක්රියාත්මක වේ AMD එම අවස්ථාවේ දී බලය තබා ගැනීමට උත්සාහ කරන අතරේම, CommonJS (ප්රධාන වශයෙන් මෙම මොඩියුලය මඟින් හඳුනාගෙන ඇති).
ඔබව තව තවත් ව්යාකූල කිරීම සඳහා, RequireJS, AMD ක්රියාත්මක කිරීමක් වන අතර, CommonJS එතීම ඉදිරිපත් කරයි, එබැවින් CommonJS මොඩියුලයන් RequireJS සමඟ භාවිතා කිරීම සඳහා කෙලින්ම ආනයනය කළ හැකිය.
define(function(require, exports, module) {
var someModule = require('someModule'); // in the vein of node
exports.doSomethingElse = function() { return someModule.doSomething() + "bar"; };
});
මෙය කරුණු පැහැදිලි කිරීමට උපකාරී වේ යැයි මම බලාපොරොත්තු වෙමි!