原生微信小程序研發,如何對圖片進行統一管理?

目標: 統一在配置文件中管理圖片,用變量存儲,換圖標時只需修改鏈接即可,無需更改業務代碼,且方便查找。

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; 從語言理解到多模態智能的通用架構基石 ?? 一、核心定義與歷史意義 …