工作笔记记录

  • Post author:
  • Post category:其他




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')



版权声明:本文为weixin_44683763原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。