当前位置: 首页 > 文档资料 > Rax 中文文档 >

Picture

优质
小牛编辑
129浏览
2023-12-01

描述

  • 复杂的图片组件
  • 在 Weex 容器中,Picture 和 Image 组件只有 forceUpdate 属性不同

安装

$ npm install rax-picture --save

属性

属性类型默认值必填描述支持
sourceObject: {uri: String}-✔️设置图片的 uri
styleObject: { width: Number height: Number }-✔️图片样式 width和height为必填属性,否则图片无法正常展示,可以补充其他属性
fallbackSourceObject: {uri: String}-备用图片的uri(当主图加载失败是加载)
forceUpdateBooleanfalsePicture 是一个 PureComponent ,它的 shouldComponentUpdate 决定了当且仅当 porps.source.uri 有变化时才会重新 render。如果你想忽略它的 shouldComponentUpdate,则传入 forceUpdate={true}
resizeModeString: 'contain' 'cover' 'stretch'stretch当组件尺寸和图片尺寸不成比例的时候如何调整图片的大小
modeStringscaleToFill小程序中的图片模式,可选项更多
qualityString: 'original' 'normal' 'low' 'high' 'auto'-图片质量
placeholderString-占位图的 URL,在图片下载过程中将展示占位图,图片下载完成后将显示source中指定的图片。
lazyloadBooleantrueweb端有效,根据图像是否在可视范围内延迟加载图像,Web 端需引入 //g.alicdn.com/kg/appear/0.2.0/appear.min.js 脚本 (注意:fixed 的元素请关闭 lazyload)
autoPixelRatioBooleantrueweb端有效,在高分辨率下使用二倍图
autoRemoveSchemeBooleantrueweb端有效,图像 URL 自动删除协议头
autoReplaceDomainBooleantrueweb端有效 图像 URL 域名替换成 gw.alicdn.com
autoScalingBooleantrueweb端有效, 为图像 URL 添加缩放后缀,将会根据 style 内的 width 属性添加缩放后缀
autoWebpBooleantrueweb端有效,添加 webp 后缀
autoCompressBooleantrueweb端有效, 添加质量压缩后缀
compressSuffixArray<string>['q75', 'q50']web端有效, 图像质量压缩后缀规则
highQualityBooleantrueweb端有效, 使用高质量的压缩后缀
ignoreGifBooleantrueweb端有效,所有针对 URL 的优化是否忽略 gif 格式的图像,默认忽略

注:基础属性、事件及图片含义见组件概述

resizeMode

  • contain:缩放图片以完全装入<Image>区域,可能背景区部分空白。
  • cover:缩放图片以完全覆盖<Image>区域,可能图片部分看不见。
  • stretch:默认值. 按照<Image>区域的宽高比例缩放图片。

onLoad onError 返回

当完成图片加载成功/失败时,将分别触发 onLoad/onError 中的回调函数 function(event) => {} Weex 下(iOS/Android)

成员类型描述
successboolean标记图片是否成功加载,成功为1/true,失败为0/false
sizeobject加载的图片大小对象
size.naturalWidthnumber图片宽度,如果图片加载失败则为0/-1
size.naturalHeightnumber图片高度,如果图片加载失败则为0/-1

H5 下是 Web 原生的Event事件

成员类型描述
targetDom图片自身元素
target.naturalWidthnumber图片宽度
target.naturalHeightnumber图片高度

示例

import { createElement, render } from 'rax';
import DriverUniversal from 'driver-universal';
import Picture from 'rax-picture';

const App = () => {
  return (
    <Picture
      source={{
        uri: 'https://gw.alicdn.com/tfs/TB1bBD0zCzqK1RjSZFpXXakSXXa-68-67.png',
      }}
      style={{
        width: 68,
        height: 68
      }}
    />
  );
}
render(<App />, document.body, { driver: DriverUniversal });