总结vue实际开发过程中用到的知识点(持续更新)

引言

开始接触前端vue技术了,实际开发过程中也遇见了各种各样的小问题,用此文记录遇见的问题和解决方式。

  1. 做查询订单信息的工具,想根据接口返回的数组值,动态生成列表,效果类似如图
    在这里插入图片描述
    解决: 内使用 v-for 遍历接口返回的数组
    在这里插入图片描述

  2. 接口返回值有些字段过长,一行3个影响视觉效果,所以打算吧接口返回值的值很长的key先删除掉,最后单独按一行一个显示

    解决:有2个思路
    a. 使用computed处理数据,delete删除key
    在这里插入图片描述
    b.使用 v-if,利用indexOf函数,判断不是该key的时候渲染
    在这里插入图片描述

  3. 使用el-descriptions组件 ,单独处理长值时,key的返回值过长了,导致超出屏幕外,不是特别长的时候会自动换行
    在这里插入图片描述

    解决:用div包一层,加style属性break-all,会使el-descriptions内的文本自动换行
    在这里插入图片描述

  4. 单出处理的key有的长有的短,导致长的折行就很丑
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/136025c1a3cc4464b3255b8f32bd36c1.png

    解决:el-description组件使用labelClassName属性定义一个class,统一加一个样式,固定一个宽度
    在这里插入图片描述

    在这里插入图片描述

  5. 单独处理的key再没请求后端时就渲染了,期望点击按钮调用接口后再渲染
    在这里插入图片描述
    解决:使用v-show,在后端返回有值后显示,即当该值当key数量大于0的时候
    在这里插入图片描述

  6. 同步请求接口后,在执行后面逻辑
    使用async…await 将异步请求接口变为同步请求完成后在执行后续逻辑在这里插入图片描述

  7. 利用v-show=‘表达式’方式来判断组建显示条件
    在这里插入图片描述

  8. 使用scope.row操作表单的单行数据,row值为列表中的单个对象值
    在这里插入图片描述

  9. 处理数据,

  数组后面添加元素  a = [], a.push() 
  数组前面添加元素 a.unshift()
  字符串截取 a='',a.substring(0,2)
  字符串分割 a=‘’,a.split('/')
  查找数组索引 a=[],a.findIndex((item) => item.属性 === ' ')
  数组转字符串:a=[],a.toString()
  1. 时间戳转换
formatDate(timestamp) {
      let date = new Date(timestamp * 1000) // 时间戳为10位需*1000,时间戳为13位的话不需乘1000
      const Y = date.getFullYear() + '-'
      const M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-'
      const D = (date.getDate() < 10 ? '0' + date.getDate() : date.getDate()) + ' '
      const h = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':'
      const m = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) + ':'
      const s = (date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds())
      return Y + M + D + h + m + s
    },
  1. 间隔时间,类似php的sleep函数,同步调用
sleep(numberMillis) {
      return new Promise((resolve => {
        setTimeout(() => resolve(), numberMillis)
      }))
    },
 async deployService(rowData) {
      rowData.isProcess = true
      rowData.percent = 0
      while (!rowData.isDone) {
        await this.sleep(this.deployCost)
        rowData.percent = rowData.percent + 10
}  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值