Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

173
Vistas
¿Puede la importación dinámica del icono @mdi/js funcionar con la sacudida de árboles en una plantilla vue?

Tengo el siguiente componente para importar dinámicamente un ícono desde mdi/js. El único problema con esto es que no sacude los árboles. ¿Alguien sabe cómo hacer que el movimiento de árboles funcione con este tipo de configuración? Puedo usar esto en cualquier lugar como

<Icon name='mdiMagnify'>

Icono.vue

 <template> <v-icon v-bind="$attrs">{{ icon }}</v-icon> </template> <script> export default { name: 'Icon', props: { name: { required: true, type: String, }, }, data: () => ({ icon: null, }), async created() { const { [this.name]: icon } = await import('@mdi/js') this.icon = icon }, } </script>

La razón detrás de esto es que no tendré que importar todos y cada uno de los íconos que necesito en todos mis componentes y pasarlos a una variable de datos para poder utilizarlos en la plantilla vue.

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Lo que terminé haciendo actualmente es tener todo el svg en el paquete @mdi/svg y usarlo como un img src. De esa manera, no tendré que lidiar con importarlo dinámicamente desde @mdi/js y esperar un movimiento de árboles.

about 4 years ago · Juan Pablo Isaza Denunciar

0

si está utilizando nuxt.js (que supongo que lo hace ya que tiene la etiqueta en su pregunta), es bastante fácil, solo agregue lo siguiente en su nuxt.config.js :

 vuetify: { defaultAssets: false, treeShake: true, icons: { iconfont: 'mdiSvg', // --> this should be enough // sideNote: you can also define custom values and have access to them // from your app and get rid of the imports in each component values: { plus: mdiPlus, // you have access to this like $vuetify.icons.values.plus from your component } } }

para que los valores funcionen, solo tiene que importar el ícono apropiado en nuxt.config.js como:

 import { mdiPlus } from '@mdi/js'

o si no le gustan los valores personalizados, puede importar los íconos necesarios para cada componente en el componente mismo y usarlos allí como:

 import { mdiPlus } from 'mdi/js' ... data() { return { plusIcon: mdiPlus } }
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda