react-cropper组件在项目中的应用(实现先裁剪后上传效果)

最近公司项目在做一个求职工具类的小程序,小程序端有企业Logo的显示,为了保证图片在小程序端的展示效果,所以要求在后台管理系统进行企业Logo上传时需要限定上传的图片尺寸和比例。为了减少管理人员的录入成本,需要在Logo上传前进行裁剪操作,保证上传进来的图片都是规则的正方。,此处用到了react-cropper组件,本文主要介绍了react-cropper组件在Ant Design Pro项目中...
摘要由CSDN通过智能技术生成

最近公司项目在做一个求职工具类的小程序,小程序端有企业Logo的显示,为了保证图片在小程序端的展示效果,所以要求在后台管理系统进行企业Logo上传时需要限定上传的图片尺寸和比例。
为了减少管理人员的录入成本,需要在Logo上传前进行裁剪操作,保证上传进来的图片都是规则的正方形。此处用到了react-cropper组件,本文主要介绍了react-cropper组件在Ant Design Pro项目中的应用。

为了解决各位看官的时间,先来看最终实现的效果,如果能够帮到你,再往下看~

  1. 点击“选择图片”按钮,弹出窗口,选择文件;
    在这里插入图片描述
  2. 图片选择成功后直接打开Modal,并将选择的图像绑定在Modal上(熊猫本熊镇楼);
3. 裁剪之后点击“确认上传”,上传成功后,关闭Modal,将图片绑定在表单页面的展示框中,齐活~
流程就是这么个流程,接下来开撸~ 首先,考虑到后期可能还会在其他位置使用到该组件,并且为了保持原页面的代码整洁,所以考虑将该组件进行二次封装。

国际惯例的第一步:先安装react-cropper依赖。
如果安装之后有问题引入样式有问题,将node_modules目录删除之后重新安装即可。

npm install react-cropper

如果需要进行图片压缩,再安装lrz组件:

npm install lrz

由于我们的项目是基于Ant Design Pro的,所以直接在src目录下的components目录下新建一个全局组件,命名为ImgCropper;

然后,引入组件,如下图,准备工作完成(此处不再赘述,相信你找到这篇文章时已经做好了这些)
先看render结构
    render() {
   
        // 考虑靠组件复用,裁剪Modal的标题作为属性从组件外部传递进来
        const {
    title } = this.props;
        /**
         * srcCropper:cropper组件内部图片的url
         * visible:裁剪Modal的显示属性
         * confirmLoading:图片上传过程中Modal的Loading效果
         * */
        const {
    srcCropper, visible, confirmLoading } = this.state;
        return (
          <div>
            <Upload beforeUpload={
   this.beforeUpload} showUploadList={
   false}>
              <Button>
                <Icon type="upload" /> 选择图片
              </Button>
            </Upload>
            <Modal
              title={
   title}
              visible={
   visible}
              onOk={
   this.saveImg}
              onCancel={
   this.onCloseModal}
              okText="确认上传"
              confirmLoading={
   confirmLoading}
            >
              <div className={
   styles.previewHeader}>
                {
   srcCropper ? (
                  <div className={
   styles.previewOutter}>
                    <div className
  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
create-react-app 是一个用于快速创建 React 应用程序的命令行工具,它默认创建的是单页面应用。如果需要实现多页面应用,可以按照以下步骤进行操作: 1. 在 src 目录下创建多个页面文件夹,如 page1、page2 等,每个文件夹创建一个 index.js 和一个 index.html 文件。 2. 在 index.js 文件编写 React 组件,作为页面的内容。 3. 在 index.html 文件引入打包后的 js 文件和其他必要的资源文件。 4. 在 public 目录下创建多个 html 文件,分别对应不同的页面,如 page1.html、page2.html 等。 5. 修改 package.json 文件的 scripts 部分,新增多个打包命令,如: ``` "scripts": { "start": "react-scripts start", "build:page1": "react-scripts build --entry ./src/page1/index.js --output-path build/page1", "build:page2": "react-scripts build --entry ./src/page2/index.js --output-path build/page2", "build": "npm run build:page1 && npm run build:page2" }, ``` 这样就可以通过 npm run build:page1 和 npm run build:page2 命令分别打包不同的页面,打包后的文件会输出到 build/page1 和 build/page2 目录下。 6. 在 public 目录下创建多个入口 html 文件,如 page1.html、page2.html 等,每个 html 文件引入相应的 js 文件即可。 7. 使用服务器部署打包后的文件,访问不同的 html 文件即可进入不同的页面。 需要注意的是,这种方式下,每个页面都需要重新加载 React 应用程序,可能会影响性能。如果需要实现更好的性能和用户体验,可以考虑使用 React Router 实现单页面应用
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值