Uso de íconos de desconexión en Astro con React: una guía paso a paso

Black Friday: Enjoy a 25% discount on the starter kits. Use code BLACKFRIDAY2024 at checkout.

LaunchFast Logo LaunchFast

Uso de íconos de desconexión en Astro con React: una guía paso a paso

Rishi Raj Jain
Using Unplugin Icons in Astro with React

En esta guía, aprenderá cómo usar Unplugin Icons en una aplicación Astro usando React. Pasará por el proceso de configurar un nuevo proyecto Astro con React, configurar Desenchufe los íconos y utilícelos para aprovechar una gran colección de íconos en su aplicación

Sponsored AICardify - AI-generated greeting cards

Generate AI Powered Greeting Cards For Every Occasion

Requisitos previos

Necesitará lo siguiente:

Tabla de contenido

Crea una nueva aplicación Astro

Comencemos creando un nuevo proyecto Astro. Ejecute el siguiente comando:

Terminal window
npm create astro@latest my-app

npm create astro es la forma recomendada de desarrollar rápidamente un proyecto Astro

Cuando se le solicite, elija:

  • Empty cuando se le pregunta cómo iniciar el nuevo proyecto
  • cuando se le pregunte si planea escribir Typecript
  • Estricto cuando se le pregunta qué tan estricto debe ser Typecript.
  • cuando se le solicita instalar dependencias
  • cuando se le solicita inicializar un repositorio de git

Una vez hecho esto, puede ir al directorio del proyecto e iniciar la aplicación:

Terminal window
cd my-app
npm run dev

La aplicación debería estar ejecutándose en localhost:4321

Ahora, pasemos a integrar React en tu aplicación Astro.

Integra React en tu proyecto Astro

Ejecute el siguiente comando para integrar React en su proyecto Astro:

Terminal window
npx astro add react

npx nos permite ejecutar paquetes binarios npm sin tener que instalarlo primero globalmente

Cuando se le solicite, elija lo siguiente:

  • cuando se le pregunta si desea instalar las dependencias de React
  • cuando se le pregunta si desea realizar cambios en el archivo de configuración de Astro
  • cuando se le pregunta si desea realizar cambios en el archivo tsconfigjson

Ahora, pasemos a integrar Unplugin Icons en su aplicación Astro.

Integre íconos de desconexión en su proyecto Astro

Instalar las dependencias de Unplugin Icons

Ejecute los siguientes comandos para instalar los paquetes necesarios para usar Unplugin Icons con React en Astro:

Terminal window
# unplugin-icons package for Vite compiler
npm i -D unplugin-icons
# @iconify/json package for the icons collection
npm i -D @iconify/json
# @svgr/core and @svgr/plugin-jsx packages for React compatibility
npm i -D @svgr/core @svgr/plugin-jsx

El comando instala las siguientes bibliotecas:

  • unplugin-icons: un paquete para acceder a miles de iconos como componentes bajo demanda de forma universal
  • @iconify/json: una gran colección de íconos vectoriales de código abierto, todos validados, limpiados y convertidos al mismo formato fácil de usar.
  • @svgr/core: Un paquete para transformar SVG en componentes de React
  • @svgr/plugin-jsx: Un paquete para transformar SVG en JSX

Además, realice las siguientes adiciones en astroconfigmjs para usar la integración de Unplugin Icons:

astro.config.mjs
import react from "@astrojs/react";
import Icons from "unplugin-icons/vite"; // [!code ++] // [!code focus]
import { defineConfig } from "astro/config";
export default defineConfig({
integrations: [
react(),
vite: { // [!code ++] // [!code focus]
plugins: [ // [!code ++] // [!code focus]
Icons({ // [!code ++] // [!code focus]
jsx: "react", // [!code ++] // [!code focus]
compiler: "jsx", // [!code ++] // [!code focus]
autoInstall: true, // [!code ++] // [!code focus]
}), // [!code ++] // [!code focus]
Icons({ // [!code ++] // [!code focus]
compiler: "astro", // [!code ++] // [!code focus]
autoInstall: true, // [!code ++] // [!code focus]
}), // [!code ++] // [!code focus]
], // [!code ++] // [!code focus]
}, // [!code ++] // [!code focus]
],
});

Como se aprendió en un [problema de GitHub] (https://githubcom/unplugin/unplugin-icons/issues/253), es aconsejable usar ambos modos de compilación, es decir, con React y Astro. Esto permite el uso de íconos de Unplugin en ambos React. y componentes Astro en su aplicación Astro

Crear definiciones de tipo para iconos de desconexión

Para asegurarse de que puede aprovechar las definiciones de tipo de los íconos de Unplugin usando React en Astro, querrá definir globalmente importaciones de íconos específicas como importaciones de componentes de React.

Para hacerlo, actualice envdts en el directorio src con el siguiente código:

/// <reference types="astro/client" />
declare module "virtual:icons/*" { // [!code ++] // [!code focus]
import type { SVGProps } from "react"; // [!code ++] // [!code focus]
import type React from "react"; // [!code ++] // [!code focus]
const component: (props: SVGProps<SVGSVGElement>) => React.ReactElement; // [!code ++] // [!code focus]
export default component; // [!code ++] // [!code focus]
} // [!code ++] // [!code focus]

El código anterior simplemente marca cada importación realizada a través de virtual:icons para que se considere como componentes de React en su aplicación Astro.### Utilice iconos de desconexión en la ruta de índice

Finalmente, importa el ícono y úsalo en tu componente Astro (o React) con el siguiente código:

---
import MdiAlarmOff from "virtual:icons/mdi/alarm-off"; // [!code ++] // [!code focus]
---
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
<meta name="viewport" content="width=device-width" />
<meta name="generator" content={Astro.generator} />
<title>Astro</title>
</head>
<body>
<h1>Astro</h1>
<MdiAlarmOff client:load /> // [!code ++] // [!code focus]
</body>
</html>

El código anterior importa un ícono como componente de React en la ruta de índice

¡Ya terminaste!

Cree y pruebe su aplicación Astro localmente

Para probar la aplicación, prepare una compilación y ejecute el servidor de vista previa usando el siguiente comando:

Terminal window
npm run build && npm run preview

Conclusión

En esta guía, aprendió cómo usar Unplugin Icons con React en una aplicación Astro.

Si tiene alguna pregunta o comentario, no dude en comunicarse conmigo en Twitter

Learn More Autenticación de Benutzern en Astro mit besserer Authentifizierung: Eine Schritt-für-Schritt-Anleitung
Autenticación de Benutzern en Astro mit besserer Authentifizierung: Eine Schritt-für-Schritt-Anleitung November 24, 2024
Astro vs.Next.js: Auswahl de los mejores frameworks en enero de 2024
Astro vs.Next.js: Auswahl de los mejores frameworks en enero de 2024 October 30, 2024
6 funciones diferentes, el kit de inicio web completo incluye todas las funciones
6 funciones diferentes, el kit de inicio web completo incluye todas las funciones October 26, 2024