3.2 KiB
3.2 KiB
id | title | localeTitle | challengeType |
---|---|---|---|
587d7b8c367417b2b2512b55 | Understand the Differences Between import and require | Comprender las diferencias entre importar y requerir | 1 |
Description
require()
se usaría para importar las funciones y el código en archivos y módulos externos. Aunque es práctico, esto presenta un problema: algunos archivos y módulos son bastante grandes, y es posible que solo necesite cierto código de esos recursos externos.
ES6 nos da una herramienta muy útil conocida como importación . Con él, podemos elegir qué partes de un módulo o archivo cargar en un archivo dado, ahorrando tiempo y memoria.
Considera el siguiente ejemplo. Imagine que math_array_functions
tiene aproximadamente 20 funciones, pero solo necesito una, countItems
, en mi archivo actual. El antiguo enfoque de require()
me obligaría a incorporar las 20 funciones. Con esta nueva sintaxis de import
, puedo traer solo la función deseada, así:
import { countItems } from "math_array_functions"Una descripción del código anterior:
import { function } from "file_path_goes_here"Hay algunas formas de escribir una declaración de
// We can also import variables the same way!
import
, pero la anterior es un caso de uso muy común.
Nota El espacio en blanco que rodea la función dentro de las llaves es una buena práctica: facilita la lectura de la declaración de
import
.
Nota Las lecciones en esta sección manejan características que no son del navegador.
import
, y las declaraciones que presentamos en el resto de estas lecciones, no funcionarán directamente en un navegador. Sin embargo, podemos usar varias herramientas para crear código a partir de esto para que funcione en el navegador.
Nota En la mayoría de los casos, la ruta del archivo requiere una
./
antes de ella; de lo contrario, el nodo buscará en el directorio node_modules
primero intentando cargarlo como una dependencia.
Instructions
import
apropiada que permitirá que el archivo actual use la función capitalizeString
. El archivo donde vive esta función se llama "string_functions"
, y está en el mismo directorio que el archivo actual.
Tests
tests:
- text: declaración de <code>import</code> válida
testString: 'getUserInput => assert(getUserInput("index").match(/import\s+\{\s*capitalizeString\s*\}\s+from\s+("|")string_functions\1/g), "valid <code>import</code> statement");'
Challenge Seed
"use strict";
capitalizeString("hello!");
Before Test
window.require = function (str) {
if (str === 'string_functions') {
return {
capitalizeString: str => str.toUpperCase()
}}};
Solution
// solution required