Vue-3中的动态导入图像

乔治·塔拉索夫(Georgy Tarasov)

我正在尝试显示动态导入的图像,但无法处理该错误

“找不到模块”

这是我的组成部分

<template>
      <div class="footer">
        <div v-for="footerItem in getters" :key="footerItem.id">
          <img :src="methods.requireImage(footerItem.icon)" alt="">
        </div>
      </div>
    </template>

<script lang="ts">
import { defineComponent } from 'vue'
import { useStore } from '@/store'
import { requireImage } from '@/modules/images'

export default defineComponent({
  name: 'Footer',
  setup () {
    const store = useStore()
    const methods = {
      requireImage
    }

    return {
      getters: store.getters.getFooterItems,
      methods
    }
  }
})
</script>

这是模块

export const requireImage = async (link: string) => {
  // return require(link)
  const image = await import(link)
  return image
  // const images = require.context('../assets', false)
  // return images('color-circle.svg')
}

注释掉的代码不起作用

如果将完整路径传递到require变量中,则Webpack无法加载图像。这主要是因为它是一个构建时工具,并且路径是在运行时创建的。但是,如果您至少对某些路径进行了硬编码,那就足够了:

export const requireImage = link => {
  return require(`@/assets/${link}`);
}

注意:删除了不必要的async或返回的值将是一个承诺

由于路径已在函数中,因此变量footerItem.icon应仅包含文件名color-circle.svg完成后,您可以根据需要在模板中使用该方法:

<img :src="methods.requireImage(footerItem.icon)" alt="">

请注意,目前您不需要外部函数,因为您可以从以下命令获得相同的结果:

<img :src="require(`@/assets/${footerItem.icon}`)">

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Vue 3将动态组件与动态导入配合使用

来自分类Dev

无法在Vue和Vuetify的动态内容中渲染图像源

来自分类Dev

在 vue.js 中动态添加/删除图像

来自分类Dev

从项目模块动态导入Vue CLI

来自分类Dev

从子文件夹动态 Vue 导入

来自分类Dev

如何在Vue 3中导入作用域CSS?

来自分类Dev

Vue组件中的条件导入

来自分类Dev

在Vue中的导入组件上更新CSS类中的背景图像

来自分类Dev

来自资产的Vue动态图像

来自分类Dev

动态在Vue组件中换行

来自分类Dev

Vue.js 3:无法导入Vue全局对象

来自分类Dev

在Vue 3设置中导入功能

来自分类Dev

使用 Laravel 对象在 vue 模板中动态图像的数据绑定样式

来自分类Dev

如何在Vue 3(Vue路由器)中设置具有多个动态参数的动态路由

来自分类Dev

“在'vue'中找不到导出'默认'(导入为'Vue')

来自分类Dev

从reactJS中的JSON文件动态导入图像

来自分类Dev

将scss变量导入Vue中的Typescript

来自分类Dev

将路由动态导入Vue路由器

来自分类Dev

vue.js动态导入和加载组件

来自分类Dev

带有需要的Vue Webpack动态导入无法正常工作

来自分类Dev

ES 6 导入 Vue

来自分类Dev

Vue中的多个动态HTML参数

来自分类Dev

在Vue中循环并添加动态className

来自分类Dev

在vue.js中渲染动态组件?

来自分类Dev

Vue.js中的动态导航组件

来自分类Dev

在 Vue 中解析动态加载的指令

来自分类Dev

vue中的动态角色和权限

来自分类Dev

如何在Vue中动态生成div?

来自分类Dev

Vue过渡的动态样式