Los componentes de React se pueden exportar de dos formas:
- Exportación por defecto
- Exportación nombrada
Para exportar un componente por defecto, usamos la palabra reservada default
:
// button.jsx
export default function Button() {
return <button>Click</button>
}
// App.jsx
import Button from './button.jsx'
function App() {
return <Button />
}
La gran desventaja que tiene la exportación por defecto es que a la hora de importarlo puedes usar el nombre que quieras. Y esto trae problemas, ya que puedes no usar siempre el mismo en el proyecto o usar un nombre que no sea correcto con lo que importas.
// button.jsx
export default function Button() {
return <button>Click</button>
}
// App.jsx
import MyButton from './button.jsx'
function App() {
return <MyButton />
}
// Otro.jsx
import Button from './button.jsx'
function Otro() {
return <Button />
}
Los exports nombrados nos obligan a usar el mismo nombre en todos los archivos y, por tanto, nos aseguramos de que siempre estamos usando el nombre correcto.
// button.jsx
export function Button() {
return <button>Click</button>
}
// App.jsx
import { Button } from './button.jsx'
function App() {
return <Button />
}