Vue3 动态引入图片: require is not defined报错

问题:在 Vue3 项目中,使用 require 引入图片,报错 require is not defined

原因: Vue3 使用的是 vite,而 require 是 Webpack 的方法。

官网说明

解决代码:

javascript 复制代码
<template>
	<div v-for="(item, index) in list" class="list-item">
		<img :src="getAssetURL(item)" alt=""> 
	</div>
</template>

<script setup>
  import { ref } from 'vue'
  const list = ref([
    {
      sex: '男',
      name: '张小白',
      type: '成人'
    },
    {
      sex: '女',
      name: '张小白',
      type: '成人'
    }
  ])

  const getAssetURL = (image) => {
    // 参数一: 相对路径   参数二: 当前路径的URL
    return new URL(`/src/assets/头像${image.type}${image.sex}.png`, import.meta.url).href
  }
</script>
相关推荐
程序员Agions3 分钟前
useMemo、useCallback、React.memo,可能真的要删了
前端·react.js
滕青山5 分钟前
Vue项目BMI计算器技术实现
前端·vue.js
子兮曰9 分钟前
深入浏览器指纹:Canvas、WebGL、Audio是如何暴露你的身份的?
前端·浏览器·canvas
月亮补丁11 分钟前
AntiGravity只能生成 1:1 图片?一招破解尺寸限制
前端
何中应16 分钟前
MindMap部署
前端·node.js
NAGNIP18 分钟前
程序员效率翻倍的快捷键大全!
前端·后端·程序员
一个网络学徒22 分钟前
python5
java·服务器·前端
tiantian_cool22 分钟前
Claude Opus 4.6 模型新特性(2026年2月5日发布)
前端
0思必得027 分钟前
[Web自动化] Selenium获取元素的子元素
前端·爬虫·selenium·自动化·web自动化
用户57573033462434 分钟前
🌟 从一行 HTML 到屏幕像素:浏览器是如何“画”出网页的?
前端