美文网首页
React笔记

React笔记

作者: 戏入子迷 | 来源:发表于2019-01-09 10:08 被阅读8次

使用脚手架react-create-app

// 安装
npm install -g create-react-app
// 建项目
create-react-app your-app-name

这个命令创建一个react项目,使用yarn命令启动或编译。

使用react-react-app创建的项目,webpack配置文件是没有暴露出来的,需要使用命令 npm run eject 暴露webpack配置文件,

加密库 crypto-js

无论是md5,还是base64,或者sha等加密方式都有封装。

import CryptoJs from "crypto-js"
// md5
CryptoJs.MD5(str).toString();
//base64
CryptoJs.enc.Base64.stringify(str);
//sha1
CryptoJs.SHA1(str).toString();
//aes
CryptoJs.AES.encrypt

上传图片

图片上传,在上传前预览,或者base64编码。组件可用antd的Upload,

import {Upload} from "antd";

class RegMore extends React.Component {

    constructor(props) {
        super(props);
        this.state = {
            photo: '',
        }
    }
    
    chkPhoto = (file) => {
        let flag = true;
        if (file.type !== 'image/jpeg' && file.type !== 'image/png') {
            flag = false;
            showMsg('You can only upload JPG,PNG file!');
        } else if (file.size > 4 * 1024 *1024) {
            flag = false;
            showMsg('Image must smaller than 4MB!');
        }
        return flag;
    }
    
    setPhoto(data) {
        this.setState({photo: data});
    }
    // 上传图片。并不真的上传,而是读取图片内容保存在state中。读取的图片内容已经是base64。
    upimg = (detail) => {
        console.log(detail);
        let reader = new FileReader();
        reader.addEventListener('load', () => this.setPhoto(reader.result));
        reader.readAsDataURL(detail.file);
    }
    
    render() {
        const uploadButton = (
            <span className="upimgbg"></span>
        );
       
        return (
            ……
            <Upload name="1" listType="picture-card" showUploadList={false} beforeUpload={this.chkPhoto} customRequest={this.upimg}>
                {this.state.photo.length > 0 ? <img src={this.state.photo} alt="avatar" /> : uploadButton}
            </Upload>
            ……
        );
    }
}

相关文章

网友评论

      本文标题:React笔记

      本文链接:https://www.haomeiwen.com/subject/oglwrqtx.html