require()
was used to add things from external files. While handy, this presents a problem: some files are rather large and you may only need certain parts of those external resources.
ES6 gives you a very handy tool known as import
. With it, you can choose which parts of a file or module to load, saving time and memory.
Imagine a file that has 20 functions, but you only need to use one of those functions. require()
would force you to bring in all 20 functions. With the import
syntax, you can bring in just the one you need, like so:
import { desired_function } from './other_file';Here,
import
will find desired_function
in other_file
, import just that function for you to use, and ignore the rest. The ./
tells the import to look for the other_file
in the same folder that the file which uses the import statement is in. The whitespace around the function inside the curly braces is best practice for readability.
You can import multiple items like this:
import { item1, item2 } from './other_file';There are a few ways to write an
import
statement, but the above are a very common use-case.
import
statement that will allow the current file to use the capitalizeString
function. The file where this function lives is called string_functions
, and it is in the same directory as the current file.
import
statement
testString: getUserInput => assert(getUserInput('index').match(/import\s*\{\s*capitalizeString\s*\}\s*from\s*("|')(\.\/string_functions|string_functions)\1(|\/\/|;\s|\s)/g));
```