关于写vue时候发现的那些坑(一)

452 阅读2分钟

下班了,公交车上,和年轻的副总监聊天,感概时间飞快。聊的内容挺多,各方各面,最后冷不防来一句,既然这么有感悟,那就写篇文章呗,记录一下写vue时遇到的一些坑吧。 我寻思,哎,有道理,于是有了这篇文章。 账号倒是一直有,就是没写过文章,一直在观望,第一次写,废话不多说,那就开始吧,哦,对了,用的是饿了么。

pexels-tima-miroshnichenko-5380664.jpg

  1. 饿了么的el-image组件的预览图列表,使用preview-src-list控制,需要传入完整的列表,如果preview-src-list传入的是类似这样的['login.png']就一个列表里面一张图片,那么预览图片部分不会有左右切换的箭头,不能实现切换效果,其实从逻辑上也没毛病,就一张图,切换啥呢。

Snipaste_2021-06-25_21-18-23.png 这部分属实是自己太年轻,图片列表遍历出来,每项的src都是url地址item,然后这里的preview-src-lis顺手就写成了item,并不是完整的列表,而是每一项。

  1. el-input-number可以当成input使用,可以限制输入的只能是数字,遇到一个需求,某个input框用户只能输入数字,有时候还要控制小数点后两位,嗯,也可以自己定义函数用正则匹配,用@change或者@blur,但是吧,我比较懒,所以用了这个el-input-number组件。

image.png

            <el-input-number
              style="width: 400px"
              class="reset-input-number-left"
              v-model.trim="baseClassInfo.course_outline_count"
              :max="1000"
              :precision="0"
              :controls="false"
            ></el-input-number>

只要:controls="false",左右两边的加减号就会去掉,:precision="0"可以控制小数点位数,0就是没有,这样一来就能实现输入的是数字,且可以控制小数点位数了,但是!你输入的数字会变成居中的,这时候就需要修改默认样式了

// css部分 重置步进器,改造成输入框样式
.reset-input-number-left {
  .el-input__inner {
    text-align: left;
  }
}

这样就欧克了,不用自己写函数,轻松快捷。对了,这里还遇到有意思的东西,~某个数字,会变成负数,这个就留给大家自己百度了。

  1. 还有一点就是遇到符合某些条件要禁用的disabled属性,他的默认值都是布尔类型的,但我们后端就只会传0或者1,此时会报错,会说得到的是数字,期望得到的是布尔类型,所以disabled的值前面需要加上!!,对,两个取反符号,这样就能转换为布尔值,你说直接用Boolean,但我更喜欢!!,例子如下

image.png

<el-button
    size="mini"
    type="danger"
    :disabled="Boolean(categoryList[scope.$index].is_all)"
    @click="handleDelete(scope.$index, categoryList)"
>删除</el-button>

你可以看到用了上面的方法就可以了,也不会报错。不管是Boolean或者!!其实都是让值变成布尔类型。

  • pexels-luis-gomes-546819.jpg

好了,就大概先讲三点吧,这些其实也不算坑,就是一些经验吧,记录一下,希望对你有用,虽然很细小,但是累积下来,进步就很恐怖了。