更新记录
                                                                                                    
                                                    
                                                        1.0.9(2025-07-19)
                                                                                                                    
                                                                下载此版本
                                                            
                                                        
                                                    
                                                    优化
                                                                                                    
                                                    
                                                        1.0.8(2025-07-10)
                                                                                                                    
                                                                下载此版本
                                                            
                                                        
                                                    
                                                    优化
                                                                                                    
                                                    
                                                        1.0.7(2025-07-07)
                                                                                                                    
                                                                下载此版本
                                                            
                                                        
                                                    
                                                    1
                                                                                                                                                    查看更多
                                                                                                
                                            
                                                                                                                                                        平台兼容性
                                                                                                                                                                                                                                                                                                                                uni-app(4.06)
                                                                                                                                                                                                                                    
| Vue2 | 
Vue3 | 
Chrome | 
Safari | 
app-vue | 
app-nvue | 
Android | 
iOS | 
鸿蒙 | 
| √ | 
√ | 
√ | 
√ | 
√ | 
- | 
- | 
- | 
- | 
                                                                                                                                                            
| 微信小程序 | 
支付宝小程序 | 
抖音小程序 | 
百度小程序 | 
快手小程序 | 
京东小程序 | 
鸿蒙元服务 | 
QQ小程序 | 
飞书小程序 | 
快应用-华为 | 
快应用-联盟 | 
| √ | 
√ | 
√ | 
√ | 
√ | 
√ | 
- | 
√ | 
√ | 
√ | 
√ | 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                其他
                                                                                                                                                                                                                                    
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
                                            x-image 组件使用说明
概述
基于 uni-app 的 image 组件进行封装,提供了图片懒加载、缓存,增加图片二次加载速度,极大的减少 CDN 流量资源消耗
主要特性
- 🖼️ 图片懒加载:支持占位图和滚动触发加载
 
- 💾 图片缓存:自动缓存图片,提升加载性能
 
基础用法
简单使用
<template>
    <!-- 传入 placeholder-src 和 scrollTop 使用懒加载-->
  <x-image src="https://example.com/image.jpg" placeholder-src="https://example.com/loading.jpg"  :scroll-top="scrollTop" />
</template>
设置尺寸
<template>
  <!-- 方式1:使用 size 属性 -->
  <x-image 
    src="https://example.com/image.jpg" 
    size="200rpx"
    placeholder-src="https://example.com/loading.jpg"
    :scroll-top="scrollTop"
  />
  <!-- 方式2:分别设置宽高 -->
  <x-image 
    src="https://example.com/image.jpg" 
    width="200rpx" 
    height="200rpx"
    placeholder-src="https://example.com/loading.jpg"
    :scroll-top="scrollTop"
  />
</template>
图片懒加载 (传入 placeholder-src 低分辨率图地址开启懒加载, scrollTop 必须传入页面或 scroll-view 滚动距离)
<template>
  <x-image 
    src="https://example.com/image.jpg"
    placeholder-src="https://example.com/placeholder.jpg"
    :scroll-top="scrollTop"
    :scroll-area-height="scrollAreaHeight"
  />
</template>
<script>
export default {
  data() {
    return {
      scrollTop: 0,
      scrollAreaHeight: 0
    }
  },
  mounted() {
    // 注意:不同平台滚动区域高度有差异自行调式
    this.scrollAreaHeight = uni.getSystemInfoSync().windowHeight
  },
  onPageScroll(e){
    this.scrollTop = e.scrollTop
  }
}
</script>
属性说明
基础属性
| 属性名 | 
类型 | 
默认值 | 
说明 | 
src | 
String | 
- | 
图片资源地址 | 
placeholder-src | 
String | 
'' | 
占位图片资源地址(传入开启图片懒加载) | 
mode | 
String | 
'aspectFill' | 
图片裁剪、缩放的模式 | 
show-menu-by-longpress | 
Boolean | 
false | 
开启长按图片显示识别小程序码菜单 | 
cache-image | 
Boolean | 
true | 
是否缓存图片 | 
尺寸属性
| 属性名 | 
类型 | 
默认值 | 
说明 | 
size | 
String | 
'' | 
图片大小(优先级低于width/height) | 
width | 
String | 
'' | 
图片宽度(优先级高于size) | 
height | 
String | 
'' | 
图片高度(优先级高于size) | 
滚动相关属性
| 属性名 | 
类型 | 
默认值 | 
说明 | 
scroll-top | 
Number | 
0 | 
页面在垂直方向已滚动的距离,传入正确处理Y轴懒加载(单位px) | 
scroll-left | 
Number | 
0 | 
页面在水平方向已滚动的距离,传入正确处理X轴懒加载(单位px) | 
scroll-area-height | 
Number | 
windowHeight | 
滚动区域高度(单位px)注意:不同平台滚动区域高度有差异 | 
scroll-area-width | 
Number | 
windowWidth | 
滚动区域宽度(单位px) | 
offset-top | 
Number | 
0 | 
滚动区域距离顶部偏移量(单位px) | 
offset-left | 
Number | 
0 | 
滚动区域距离左侧偏移量(单位px) | 
direction | 
String | 
'vertical' | 
滚动方向:'vertical'、'horizontal'、'both' | 
样式属性
| 属性名 | 
类型 | 
默认值 | 
说明 | 
custom-class | 
String | 
'' | 
自定义 class | 
custom-style | 
Object | 
{} | 
自定义 style | 
| 模式值 | 
说明 | 
scaleToFill | 
不保持纵横比缩放图片,使图片完全填满元素 | 
widthFix | 
宽度不变,高度自动变化,保持原图宽高比 | 
heightFix | 
高度不变,宽度自动变化,保持原图宽高比 | 
aspectFit | 
保持纵横比缩放,完整显示图片 | 
aspectFill | 
保持纵横比缩放,填满元素(可能裁剪) | 
事件说明
| 事件名 | 
说明 | 
回调参数 | 
@error | 
图片加载失败时触发 | 
event | 
@load | 
图片加载成功时触发 | 
event | 
@click | 
点击图片时触发 | 
event | 
使用示例
在 scroll-view 中使用懒加载
<template>
  <scroll-view 
    scroll-y 
    @scroll=""
    style="height: 400px;"
  >
    <x-image 
      v-for="(item, index) in imageList" 
      :key="index"
      :src="item.url"
      :placeholder-src="item.placeholder"
      :scroll-top="scrollTop"
      :scroll-area-height="400"
      :offset-top="0"
      size="200rpx"
      @load="onImageLoad"
      @error="onImageError"
    />
  </scroll-view>
</template>
<script>
export default {
  data() {
    return {
      scrollTop: 0,
      imageList: [
        {
          url: 'https://example.com/image1.jpg',
          placeholder: 'https://example.com/placeholder1.jpg'
        },
        {
          url: 'https://example.com/image2.jpg',
          placeholder: 'https://example.com/placeholder2.jpg'
        }
      ]
    }
  },
  methods: {
    (e) {
      this.scrollTop = e.detail.scrollTop
    },
    onImageLoad(e) {
      console.log('图片加载成功', e)
    },
    onImageError(e) {
      console.log('图片加载失败', e)
    }
  }
}
</script>
自定义样式
<template>
  <x-image 
    src="https://example.com/image.jpg"
    custom-class="my-image"
    size="200rpx"
  />
</template>
<style>
.my-image {
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
</style>
禁用图片缓存
<template>
  <x-image 
    src="https://example.com/image.jpg"
    :cache-image="false"
    size="200rpx"
  />
</template>
注意事项
- 懒加载使用:需要传入 
placeholder-src 才会启用懒加载功能 
- 滚动监听:在 scroll-view 中使用时,需要正确设置 
offset-top 和 offset-left 
- 图片缓存:默认开启图片缓存,如不需要可设置 
cache-image 为 false 
- 尺寸优先级:
width/height 优先级高于 size 属性 
- 平台差异:不同平台的滚动区域高度可能有差异,建议根据实际情况调整