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

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

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

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

// config/image.js 统一管理图片链接
const IMG_BASE_URL = 'https://cdn.example.com/'; // 云存储基础 URLexport 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

// 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;

// 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,可以封装一个工具函数:

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

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

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

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

页面 wxml 中,使用images变量:


<!-- pages/home/index.wxml -->
<image src="{{images.logo}}" mode="aspectFit" />

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/913940.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/913940.shtml
英文地址,请注明出处:http://en.pswp.cn/news/913940.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Escrcpy(手机投屏) v1.27.2 便携版

Escrcpy 是一款强大的工具&#xff0c;它允许用户通过图形化的 Scrcpy 界面来显示和控制他们的 Android 设备。这款应用程序由 Electron 作为其底层框架驱动。Escrcpy 无需任何账户就可以使用&#xff0c;无需担心隐私或安全问题。Escrcpy没有广告&#xff0c;完全免费开源。软…

element-plus表单校验失败问题

一、问题&#xff1a;做表单校验时&#xff0c;自定义校验和常规校验都失败&#xff0c;自定义校验时无法拿到value值。二、原因&#xff1a;1、变量名称那没有绑定prop。如果是常规校验&#xff0c;没绑定prop的话&#xff0c;在确定按钮时&#xff0c;valid都是true。2、自定…

jmeter做跨线程组

多线程通常会将不同的业务逻辑分配到不同的线程组中。为什么要做多线程&#xff1a;模拟真实世界场景&#xff1a;在实际应用中&#xff0c;服务器通常需要同时处理来自多个用户的请求。通过多线程&#xff0c;JMeter可以模拟这种并发用户的行为&#xff0c;更准确地反映出应用…

SQL实战:多表查询篇

文章目录多表查询创建练习用的数据库链接/连接查询交叉连接自然连接内连接(取交集)外连接左外连接/右外连接自连接子查询联合查询总结数据库的备份和恢复命令行操作多表查询 -- 获得 alice的 部门所在城市 select * from staff where namealice; -- 获得dept_id1 select city …

交通银行基于HarmonyOS数字盾服务,实现大额转账安全

在近日落幕的华为开发者大会2025&#xff08;6月20日-6月22日&#xff09;上&#xff0c;交通银行作为HarmonyOS安全合作的关键伙伴受邀出席。在大会的主题演讲上介绍了交通银行基于HarmonyOS SDK设备安全服务&#xff08;Device Security Kit&#xff09;中的数字盾服务&#…

加密狗硬复制的方法

加密狗硬复制方法概述&#xff1a;Greer82加密狗&#xff08;Dongle&#xff09;是一种硬件加密设备&#xff0c;用于软件版权保护。硬复制是指通过物理手段复制加密狗的硬件信息&#xff0c;通常涉及破解或仿制。需要注意的是&#xff0c;未经授权的复制可能涉及法律风险&…

家庭网络中的服务器怎么对外提供服务?

家庭网络中的服务器怎么对外提供服务&#xff1f;方案1 DDNS&#xff08;家庭网络需要有公网ip&#xff09;方案2 内网穿透&#xff08;需要有一台公网ip的服务器&#xff09;方案1 DDNS&#xff08;家庭网络需要有公网ip&#xff09; 怎么判断是否有公网ip&#xff1f;大致的流…

UnrealEngine5游戏引擎实践(C++)

目录 目录 目录 Unreal Engine 是什么? Unreal Engine 5 简介 核心技术特性 应用场景扩展 兼容性与生态系统 Unreal Engine安装 下载 Epic Games Launcher 启动 Unreal Engine 选择安装版本和路径 选择组件 开始安装 验证安装 配置项目模板(可选) 更新和插件…

web渗透sql注入4之PostgreSQL

web渗透sql注入4之PostgreSQLPostgreSQL数据库特性&#xff1a;基于角色的访问控制&#xff0c;支持超级用户&#xff0c;需安装 plpgsql 扩展方可执行命令&#xff0c;可通过 COPY命令或自定义函数实现权限判断白盒看代码&#xff0c;黑盒通过构造特殊查询语句探测数据库权限权…

2025年7月:打cs1.5 600元装机台式电脑方案A

打cs1.5 600元装机方案A&#xff1a;有需要的小伙伴可以收藏哈&#xff0c;目前我没有机会实测效果&#xff0c;理论值是ok无压力的&#xff0c;大家 有机会配置后的&#xff0c;也可以自行测试下CS1.5的FPS值稳定否哈哈。 打cs1.5 600元装机方案A&#xff1a; 点击查看详细内…

人大金仓下载安装教程总结

文章目录前言背景&#xff1a; 工作中进行信创改造&#xff0c;需要把mysql&#xff0c;postgresql数据迁移到人大金仓一、人大金仓是什么&#xff1f;二、使用场景三、下载安装教程四、优势五、环境及要求六、工具以及词汇介绍总结前言 背景&#xff1a; 工作中进行信创改造&…

WebDAV与内网穿透的协同创新:Joplin私有云同步架构深度解析

文章目录前言1. 检查群晖Webdav 服务2. 本地局域网IP同步测试3. 群晖安装Cpolar工具4. 创建Webdav公网地址5. Joplin连接WebDav6. 固定Webdav公网地址7. 公网环境连接测试前言 在远程办公场景持续深化的数字化时代&#xff0c;数字笔记工具已从单纯的记录载体进化为知识管理的…

html的outline: none;

outline: none; 是一条 CSS 样式规则&#xff0c;用来取消元素获得焦点时的默认轮廓线&#xff08;outline&#xff09;。&#x1f50d; 什么是 outline&#xff1f;outline 是浏览器在某些元素&#xff08;例如输入框 <input>、按钮 <button>、可编辑元素如 <d…

Java 正则表达式白皮书:语法详解、工程实践与常用表达式库

一、什么是正则表达式&#xff1f;正则表达式&#xff08;Regular Expression&#xff09;是一种文本模式&#xff0c;用于描述、匹配、搜索或替换符合某种规则的字符串。其在日志提取、表单校验、配置清洗、数据爬取等场景中被广泛使用。Java 提供了完整的正则表达式支持&…

火山引擎Data Agent全面上线售卖!以企业级数据智能体,重构数据应用范式

资料来源&#xff1a;火山引擎-开发者社区 在火山引擎2025春季FORCE原动力大会现场&#xff0c;火山引擎数智平台解决方案总经理萧然宣布&#xff0c; 企业级数据智能体Data Agent即日起正式上线售卖 。该产品旨在通过DataAI的深度融合&#xff0c;助力企业实现数据价值的挖掘与…

uniapp AndroidiOS 定位权限检查

定位权限检查 // 检查定位权限状态 export const checkPermission () > {const platform uni.getSystemInfoSync().platform;console.log(platform, platform)// #ifdef APP-PLUSif (platform android) {// Androidreturn checkAndroidPermission();} else if (platform …

深入理解Java虚拟机(JVM):从内存管理到性能优化

深入理解Java虚拟机&#xff08;JVM&#xff09;&#xff1a;从内存管理到性能优化 目录 引言JVM架构概述 1. 类加载器&#xff08;Class Loader&#xff09;2. 运行时数据区&#xff08;Runtime Data Areas&#xff09;3. 执行引擎&#xff08;Execution Engine&#xff09;…

PHP SimpleXML:深入理解与高效使用

PHP SimpleXML:深入理解与高效使用 引言 PHP SimpleXML 是一个用于解析和操作 XML 文档的库。它简化了 XML 的处理过程,使得 PHP 开发者可以更加轻松地与 XML 数据交互。本文将深入探讨 PHP SimpleXML 的基本概念、使用方法以及在实际开发中的应用。 SimpleXML 简介 Simp…

双模秒切,体验跃迁!飞利浦EVNIA双模游戏显示器27M2N6801M王者降临!

当沉浸式画质与电竞级流畅无法共存&#xff0c;EVNIA Mini LED双模游戏显示器27M2N6801M以破界之姿革新而来&#xff01;全新搭载 4K160Hz / FHD320Hz双模显示引擎&#xff0c;将视觉震撼与操作跟手性推向全新高度。心念所动间&#xff0c;即可在电影级3A世界与分秒必争的电竞战…

Transformer:自注意力驱动的神经网络革命引擎

本文由「大千AI助手」原创发布&#xff0c;专注用真话讲AI&#xff0c;回归技术本质。拒绝神话或妖魔化。搜索「大千AI助手」关注我&#xff0c;一起撕掉过度包装&#xff0c;学习真实的AI技术&#xff01; 从语言理解到多模态智能的通用架构基石 ⚙️ 一、核心定义与历史意义 …