工作笔记记录

1.vant-uploader组件图片回显

在这里插入图片描述

v-model双向绑定–展示图片;this.filesList保存传给后端
v-model不能是对象里的数组,不能做删除;

2.深拷贝

this.Obj= JSON.parse(JSON.stringify(this.Obj))

3.Snipaste.exe - 快捷方式

回看截图:按F1,<和>键上下切换

4.微信小程序后端返回的不是图片地址,而是二进制图片流,前端渲染图片

通过wx.arrayBufferToBase64把图片的二进制流转化成正常的64进制,然后在拼接图片的url代码如下

let url = 'data:image/png;base64,' + wx.arrayBufferToBase64(res.data)		
this.imgurl = url

5.二进制(数据流)转base64,放在src即可显示图片

responseType: “blob”, //一定要传!!!

    //二进制转base64
    getBase64(data) {
      return new Promise((resolve, reject) => {
        const blob = new Blob([data], { type: 'image/png' }) // 必须指定type类型
        const reader = new FileReader()
        reader.readAsDataURL(blob)
        reader.onload = () => resolve(reader.result)
        reader.onerror = (error) => reject(error)
      })
    },
    
    //获取二进制数据流,然后调用方法
    this.getBase64(res).then((info) => {
       console.log(info)
       this.recordExportBase = info
  })       

6.overflow属性常见的有四个:visible,hidden,auto和scroll

visible:overflow 的默认值,为超出显示;
hidden:超出隐藏;
auto:自动,即超出会出现滚动条, 不超出就没有滚动条;
scroll:内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。

7.JSON.stringify(obj1) === JSON.stringify(obj2)判断

缺陷:键、值相同,但是调整了键的位置后,结果为false

let onj1 = {
    a: 1,
    b: 2
  }
  let onj2 = {
    b: 2,
    a: 1
  }
  console.log(JSON.stringify(onj1) === JSON.stringify(onj2)) // false

8.正确对象判断

 // 数据类型
 getType (value) {
     const result = Object.prototype.toString.call(value).split(' ')
     const str = result[1]
     const len = str.length
     const type = str.substring(0, len - 1).toLowerCase()
     return type
 },
        
   // 判断对象是否相同
 isEqualTwoObjects (firstObj, secondObj) {
     // 0. 如果这两个对象指向同一个引用
     if (firstObj === secondObj) {
         return true
     }
     // 1. 第一步拿到这两个对象的 键
     const firstObjKeys = Object.getOwnPropertyNames(firstObj)
     const secondObjKeys = Object.getOwnPropertyNames(secondObj)
     // 2. 判断键 长度是否一致
     if (firstObjKeys.length !== secondObjKeys.length) {
         return false
     }
     // 3. 判断 键名 是否相同
     const set = new Set(firstObjKeys)
     const bool = secondObjKeys.every((item) => set.has(item))
     if (!bool) {
         return false
     }

     // 4. 进行比较判断每个属性的值是否相等
     for (let i = 0; i < firstObjKeys.length; i++) {
         const item = firstObjKeys[i]
         const firstObjValue = firstObj[item]
         const secondObjValue = secondObj[item]
         const firstObjValueType = this.getType(firstObjValue)
         const secondObjValueType = this.getType(secondObjValue)
         if (firstObjValueType !== secondObjValueType) {
             return false
         }
         if (firstObjValueType === 'function' || firstObjValueType === 'array') {
             if (firstObjValue.toString() !== secondObjValue.toString()) {
                 return false
             }
         } else if (firstObjValueType === 'object') {
             if (!this.isEqualTwoObjects(firstObjValue, secondObjValue)) {
                 return false
             }
         } else if (firstObjValue !== secondObjValue) {
             return false
         }
     }
     return true
 }

9.时间格式化–2022-06-24T16:00:00.000Z

new Date(2022-06-25 00:00:00)
this.$Date(editOperationInfo.birthday).format('YYYY-MM-DD');
this.$Date(new Date()).format('YYYY-MM-DD')
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值