原生微信小程序研发,如何对图片进行统一管理?

目标: 统一在配置文件中管理图片,用变量存储,换图标时只需修改链接即可,无需更改业务代码,且方便查找。

tips: 不建议在 asset 中存储大量图片,原因是官方要求小程序内存要限制在2M以内,图片放多了占资源,会扩大包体积。若仅放几个代表性小图标则影响不大。

1. 创建 config/img 文件,放置图片链接,方便统一管理

管理图片的cdn链接(或其他链接,只要能加载出图片即可)

js 复制代码
// config/image.js 统一管理图片链接
const IMG_BASE_URL = 'https://cdn.example.com/'; // 云存储基础 URL

export default {
  // 静态图片(直接使用完整 URL)
  IELTSImg: 'https://cdn.example.com/2025/07/07/5c238a94de137ee6bcabefbe1e1fd37a.png',
  defaultLogo:`https://cdn.example.com/2025/07/07/2f32b9151953f0e8caee46b57ac1b3da.png`, // 默认兜底logo
  // 用IMG_BASE_URL 拼接
  logos:{
	  logo: `${IMG_BASE_URL}logo.png`,
	  defaultAvatar: `${IMG_BASE_URL}default-avatar.png`,
	  // 动态图片(封装生成逻辑)
	  userAvatar: (userId, size = '100x100') => {
	    return `${IMG_BASE_URL}avatars/${userId}_${size}.jpg?timestamp=${Date.now()}`;
	  },
  },
  // 小图标
  icons: {
  },
};
2. 在 app.js 中 定义全局变量。

这里全局变量用的 globalData

js 复制代码
// app.js
import imgConfig from './config/img.js'
App({
  onLaunch: function(options) {
    this.autoUpdate();
  },
  globalData: {
    userInfo: null,
    imgs: imgConfig, // 图片配置
  }
})
3. 在页面中引用

方式 1:直接在页面的js文件下引入。需要在每一个要引入的页面加如下代码:

const app = getApp();
const images = app.globalData.imgs;

js 复制代码
// pages/home/index.js
// 这两句是核心
const app = getApp();
const images = app.globalData.imgs;
Page({
  data: {
    logo: imgs.logo,
    userAvatar: imgs.userAvatar('user123'),
  },
});

方式 2:在 WXML 中直接调用(需通过 JS 传递)

如果不想在 JS 中定义 data,可以封装一个工具函数:

js 复制代码
// utils/image.js
const getAppImages = () => {
  const app = getApp();
  return app.globalData.images;
};
 
export { getAppImages };

这个工具函数可以全局引用。

页面 js 中,引入刚才定义好的工具方法:

js 复制代码
// pages/home/index.js
import { getAppImages } from '../../utils/image';
Page({
  onLoad() {
    this.images = getAppImages();
  },
});

页面 wxml 中,使用images变量:

html 复制代码
<!-- pages/home/index.wxml -->
<image src="{{images.logo}}" mode="aspectFit" />
相关推荐
星光一影1 天前
美容/心理咨询/问诊/法律咨询/牙医预约/线上线下预约/牙医行业通用医疗预约咨询小程序
mysql·小程序·vue·php·uniapp
游戏开发爱好者81 天前
H5 混合应用加密 Web 资源暴露到 IPA 层防护的完整技术方案
android·前端·ios·小程序·uni-app·iphone·webview
wangpq1 天前
记录曾经打开半屏小程序遇到的事
前端·微信小程序
2501_915106321 天前
最新版本iOS系统设备管理功能全面指南
android·macos·ios·小程序·uni-app·cocoa·iphone
游戏开发爱好者81 天前
HTTPS DDoS 排查 异常流量到抓包分析
网络协议·ios·小程序·https·uni-app·iphone·ddos
jay神1 天前
【原创】基于小程序的图书馆座位预约系统
微信小程序·小程序·毕业设计·图书馆自习室座位预约系统·座位预约系统
计算机徐师兄1 天前
Java基于微信小程序的物流管理系统【附源码、文档说明】
java·微信小程序·物流管理系统·java物流管理系统小程序·物流管理系统小程序·物流管理系统微信小程序·java物流管理系统微信小程序
一点晖光1 天前
小程序中web-view加载uni-app H5如何使用postMessage方法的解决方案
前端·小程序·uni-app
2501_915918411 天前
iOS 性能监控 运行时指标与系统行为的多工具协同方案
android·macos·ios·小程序·uni-app·cocoa·iphone
00后程序员张1 天前
IPA 混淆技术全解,从成品包结构出发的 iOS 应用安全实践与工具组合
android·安全·ios·小程序·uni-app·cocoa·iphone