Vite+Vue3图片资源六种引入方式,总有一种能解决你当下难题

2022年7月18日 422点热度 0人点赞 0条评论

“切图仔”不会调用图片还叫什么切图仔?因此汇总vue3项目中常见6种图片资源引入方式,总有一种能解决你当下难题;其中包含借助vite-plugin-vue-images来实现自动导入图片,从而不影响大家“摸鱼”时间,正所谓多学一个知识就能少写一行代码

一、常规

<img src="@/assets/record.jpg" />

二、js通过import from

# template<img :src="imgSrc" />
# jsimport imgSrc from '@/assets/painting.jpg';

三、采用vite-plugin-vue-images插件自动导入

安装插件

npm i vite-plugin-vue-images -D

配置

# vite.config.tsimport { defineConfig,loadEnv} from 'vite'import ViteImages from 'vite-plugin-vue-images'export default  ({ mode }) => defineConfig({  plugins: [    ViteImages({      dirs: ['src/assets'], // 图像目录的相对路径      extensions: ['jpg', 'jpeg', 'png', 'svg', 'webp'], // 有效的图像扩展      customResolvers:[], // 覆盖名称->图像路径解析的默认行为      customSearchRegex: '([a-zA-Z0-9]+)', // 重写搜索要替换的变量的Regex。    }),  ]

使用

自动导入图像,同级目录的文件名不能重复!命名遵循大驼峰命名方式

// src/assets/straight_man.jpg<img :src="StraightMan" /> // 注意命名遵循大驼峰命名方式

插件将转换为

<template>  <div>    <img :src="straight_man"  />  </div></template>
<script setup lang="ts">import straight_manfrom '@/assets/straight_man.jpg'</script>

四、new URL() + import.meta.url

vite官方配置文档

# template<img :src="getAssetsFile" />
# jsfunction getAssetsImages(name) { return new URL(`/src/assets/${name}`, import.meta.url).href;}const getAssetsFile = getAssetsImages('valentine_day.jpg');

五、import.meta.glob

使用vite的import.meta.glob或import.meta.globEager,两者的区别是前者懒加载资源,后者直接引入;不推荐,这种方式使时候引入的文件必须指定到具体文件夹路径,传入的变量中只能为文件名,不能包含文件路径,可以采用方式四替代该方案

# template<img :src="getAssetsHomeFile('time_shuttle.jpg')" />
# jslet getAssetsHomeFile = (url: string) => { const path = `../assets/${url}`; const modules = import.meta.globEager('../assets/*'); console.log(modules[path]) return modules[path].default;};

六、public静态图片资源引入

// src="" 一个斜杠就表示资源定位到public下<img src="/images/effort.jpg" />

学习更多技能

请点击下方公众号

图片

50750Vite+Vue3图片资源六种引入方式,总有一种能解决你当下难题

这个人很懒,什么都没留下

文章评论