Vue中mixin高级用法 举例实现对el-upload钩子的封装和极高的复用性

mixin高级用法,混入通用方法,自定义通用方法参数,实现对上传文件的大小,类型,图片尺寸进行上传拦截

el-upload 中的beforeUpload钩子方法,在对上传之前进行处理在很多上传的地方都会用到,可能因为上传文件不同,大小需要限制等等,还比如上传图片,需要对图片的尺寸进行校验等等,我们可以将这个方法通过混入的方式即实现了对通用方法通用性.降低耦合度

混入upload.js中的代码
//uploadl.js代码
/**
 1. @acceptlist {type:Array} 举例: ['mp3','mp4']  必填
 2. @acceptSize {type:Number} 文件大小(单位/m)	必填
 3. @acceptType {type:String}  是否需要校验图片 是传img 校验图片需要传
 4. @acceptFile {type:Object}  举例:{width:200,height:300} 校验图片需要传
 */
export default function (acceptArr, acceptSize, acceptType, acceptFile) {
   
  return {
   
    methods: {
   
      // 上传约束
      beforeUpload (file) {
   
        // 校验文件格式
        let fileName = file.name;
        let suffix_type = fileName.substring(fileName.lastIndexOf(".") + 1);
        if (acceptArr && Object.prototype.toString.call(acceptArr) == '[object Array]') {
   
          if (!acceptArr.includes(suffix_type)) {
   
            this.$message.error("请
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值