Awsome React Libiary——介绍开发中实用的 React 库,都是自己已经在项目中用过的,介绍库的同时会附上最佳实践。
简介
Antd
开发和服务于企业级后台的 React UI 组件库。
Antd Upload
文件选择上传和拖拽上传控件。
七牛对象存储
实用的对象存储和 CDN 服务使我们网站静态资源更好的托管
特性
- Upload 控件能高度自定义,能够应对大部分的应用场景。
- 七牛提供对象存储服务,文件直传七牛,减少服务器存储压力。
- 七牛 cdn 加速图片等资源访问速度。
- …
评价
- 大小:29k (antd-upload)
- 优点:见特性
- 缺点:
- 考虑安全性,需要服务器提供一次性上传 token
- 七牛免费额度有限,资源过多小心欠费
使用分析
首先根据七牛官方文档,配置好 Upload 控件上传所需参数或返回上传参数的方法,此处只需要添加一个自定义头部属性—— token
,这个 token
是根据七牛的 ACCESS_KEY、SECRET_KEY、Bucket
生成的。正常使用时应该由后端提供这个 token,前端在 Upload
控件的 BeforeUpload
周期中获取。不同语言有不同 token
的生成 SDK,七牛都有提供,可以参考七牛SDK配置。
这里献上 Node.js
的关键代码,这是最简单,复杂的参考七牛文档。
1 | import qiniu from 'qiniu' |
上传的前置条件配置好后,我们将关注点回到上传图片并获取url
。通过控件选择文件后,文件开始上传,http 请求触发 Upload
控件的 onChange
方法,直到图片上传完成停止查询。我们格式化结果可以放在这一步进行,值得注意的是,不管请求的 status
是否为 done
,都要更新 fileList。因为我们需要将 fileList 存储到组件的 state
中,这样文件的 fileList
属性才能同步。
说了这么多,没看懂的话看看 demo
吧。
代码
1 | import React, { Component } from 'react' |
相关链接: