In RequireJS, what is the basic difference between using require() Vs define();
require(['a'], function(a) { // some code }); // A.js define(['b','c','d','e'], function() { //some code });
Any use cases would be very helpful..
The define() function can be used to load the modules (module can be an object, function, class or a code which is executed after loading a module). You can load different versions of the same module in the same page.
In NodeJS, require() is a built-in function to include external modules that exist in separate files. require() statement basically reads a JavaScript file, executes it, and then proceeds to return the export object.
The require(...) function returns the module. exports value from the "required" module, and in the case its the Profile function.
With require , you can include them in your JavaScript files and use their functions and variables. However, if you are using require to get local modules, first you need to export them using module.
One core difference that annoyed me in early use was figuring out that a define
might never be called.
As long as there is only one define
per file, it will register that module as available under that filename. However, define
modules are only loaded once a require
function asks for each of them.
Define: If you need a XXX, then load these other things first, then return the result of this function.
Require: Load these other things, then run this function. (no "if")
Example: Let's say you include this JS file in your page:
// this is in company/welcomepage.js define(['company/ui_library'], function(uiLib) { console.log('Welcome to {company}!'); } );
If that's the only Javascript file, you could open your page, and there would be nothing in the console log, in spite of the script telling it to welcome the user. However, that changes if somewhere in the page, or in another script, you insert the following:
require(['company/welcomepage'], function() { // optionally insert some other page-initialization logic here });
Now, the page will put a welcome message in the console when it loads.
In fact, with that second one in place, there would be no need to manually include welcomepage.js as a <script>
tag; it would load it from its location as soon as it sees the require, and realizes it needs it.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With