Acabo de seguir un tutorial sobre Axios y noté que en él lo importan como axios pero cuando importan React es como React . ¿Por qué se capitalizan algunas importaciones? hay alguna razon tecnica?
hay alguna razon tecnica?
Si y no.
Los dos que ha enumerado son la exportación predeterminada de sus módulos relevantes, lo que significa que el nombre que usa para ellos en su código depende en gran medida de usted (con una excepción frecuente en el caso de React , más abajo). (Es diferente si se denominan exportaciones , más abajo también). He visto a personas usar Axios en lugar de axios , por ejemplo.
// Valid: // ESM import axios from "axios"; // CommonJS const axios = require("axios"); // Also valid: // ESM import Axios from "axios"; // CommonJS const Axios = require("axios"); Con React , solía ser (y aún puede serlo en algunos entornos) que necesitaba llamarlo React si estaba usando JSX, porque JSX está compilado para llamadas a React.createElement , y si ha usado el nombre react en cambio, no coincidirá. (Con algunos paquetes y configuraciones modernos, ya no es necesario importar React ).
Las exportaciones con nombre deben importarse con el nombre con el que se exportan (por lo que los nombres los define el autor del módulo), así:
// ESM import { memo } from "react"; // CommonJS const { memo } = require("react"); aunque podría cambiar el nombre de su enlace local si quisiera con as (quizás para evitar conflictos con algo más que esté importando):
// ESM import { memo as reactMemo } from "react"; // CommonJS const { memo: reactMemo } = require("react");Con ESM es una importación de una exportación con nombre utilizando la sintaxis de cambio de nombre de importación. Con CommonJS, se desestructura con la sintaxis de cambio de nombre de desestructuración.