## ✨ Feature
- UNIAPP APP 平台上图片缓存组件
- 可兼容其他平台写法
## 🥗 Install
- 在 uni-app 插件市场右上角选择`使用HBuilderX 导入插件`或者`下载插件ZIP`。
- 将下载解压后的`img-cache`文件夹,复制到`components`目录内。
## 🥐 Usage
### Vue CLI
```Javascript
// 引入
import ImgCache from '@/components/img-cache/img-cache.vue';
// 注册
components: {
ImgCache
}
// 使用
```
### HBuilderX
由于 HBuilder X 的[easycom](https://uniapp.dcloud.io/collocation/pages?id=easycom),可以不用引用、注册,直接在页面中使用
```HTML
```
## 🥪 API
### Props
`image`的[属性](https://uniapp.dcloud.io/component/image)在`img-cache`组件上是一样可以用的,这里在原有的基础上加了几个属性
| 属性名 | 类型 | 默认值 | 说明 |
| :----------- | :--------------- | :------- | :----------------------------------------------- |
| dir | string | imgcache | 缓存的文件目录,文件夹开头不能有\_ |
| width | string \| number | - | 宽度,单位任意,如果为数值,则为 rpx 单位 |
| height | string \| number | - | 高度,单位任意,如果为数值,则为 rpx 单位 |
| custom-style | object | - | 自定义样式,自定义样式宽高权重大于属性设定的宽高 |
### Events
| 属性名 | 类型 | 说明 |
| :----- | :---------- | :---------------------------------------------------------------------- |
| click | HandleEvent | 点击事件,请勿使用@tap 点击事件,微信小程序无效,返回值为点击事件及参数 |
### Method
这里我写了几个方法用于处理缓存文件,可无需引入组件,而是引入组件`img-cache`目录下的`index.js`,文件路径格式查看[RelativeURL](http://www.html5plus.org/doc/zh_cn/io.html#plus.io.RelativeURL)
```Javascript
// 引入
import { resolveFile, getDirSize, removeDir, formatSize } from '@/components/img-cache';
```
**resolveFile(url)**
- 获取[目录对象](http://www.html5plus.org/doc/zh_cn/io.html#plus.io.DirectoryEntry)或[文件对象](http://www.html5plus.org/doc/zh_cn/io.html#plus.io.FileEntry)
- 参数:`url` `` 要操作文件或目录的 URL 地址
- 返回:`` 目录或文件对象,若不存在返回 null
**getDirSize(dir)**
- 获取目录大小
- 参数:`dir` `` 目录地址
- 返回:`` 目录大小,单位字节
**removeDir(dir)**
- 删除目录
- 参数:`dir` `` 目录地址
- 返回:`` 删除状态
**formatSize(size)**
- 格式化字节大小
- 参数:`size` `` 字节大小
- 返回:`` 转换后的文字